var gNbrEventDigits=4;
var gColorFooter='#ddd';
var gFrtDiv='div9999';
var gFrameID='frameId9999';
var gFooterDiv='frt9999';
var gframeDivId='frm9999';
var gFooterUrlDiv='ftu9999';
var gFooterUrlSpan='spa9999';
var gFooterUrlSpan2='spac9999';
var gSpanFooter='spuc9999';
var gSpanFooter2='spud9999';

//==================================================================
//== Main process to Setup Css Style for Both  Iframe and Footer ===
//==================================================================

function regFrm(frame,frameHeight,partialEid){
	
	//===============================
	//=== retrieve Event ID       === 
	if(!partialEid){
		var eid = gup(frame.src, 'eid');
		eid = eid.substring(eid.length, gNbrEventDigits + 1);
		}
	else{
		eid = partialEid;
		}
	var gCurrentWidget = getWidgetCode(frame.src); // === get Widget Type                        == 

	formatDivId(eid);                        // === Set Div Id to apply Css for each Footer div  == 
	adjustHeight = mainCustomIframe(gCurrentWidget, frame); // === apply Iframe Style (heighnwidth, scroll, ... ==
	customIframeFooter();                    // === apply css to iframe Footer                   ==
	frame.style.height = (frameHeight + adjustHeight) + "px"; // === apply Iframe size                            ==
}

function formatDivId(eid){
	gFrameID = 'frameId' + eid;
	gFooterDiv = 'ftr' + eid;
	gFrameID = 'frameId' + eid;
	gMainFrameDiv = 'div' + eid;
	gFooterUrlDiv = 'ftu' + eid;
	gFooterUrlSpan = 'spac' + eid;
	gFooterUrlSpan2 = 'spuc' + eid;
	gSpanFooter = 'spa' + eid;
	gSpanFooter2 = 'spu' + eid;
	}

function customIframeFooter(){
	if(document.getElementById(gFooterDiv)){
		var divCssFooter=document.getElementById(gFooterDiv);
		divCssFooter.style.fontFamily = 'Helvetica, Arial';
		divCssFooter.style.fontSize = '10px';
		divCssFooter.style.padding = '5px 0 5px';
		divCssFooter.style.margin = "2px";
		}
	if(document.getElementById(gFooterUrlDiv)){
		var divCssFooter=document.getElementById(gFooterUrlDiv);
		divCssFooter.style.color=gColorFooter;
		divCssFooter.style.textDecoration = 'none';
		divCssFooter.target = '_blank';
		}
	if(document.getElementById(gFooterUrlSpan)){
		var divCssFooter=document.getElementById(gFooterUrlSpan);
		divCssFooter.style.color = gColorFooter;
		divCssFooter.style.textDecoration = 'none';
		divCssFooter.target = '_blank';
		}
	if(document.getElementById(gFooterUrlSpan2)){
		var divCssFooter=document.getElementById(gFooterUrlSpan2);
		divCssFooter.style.color=gColorFooter;
		divCssFooter.style.textDecoration='none';
		divCssFooter.target='_blank';
		}
	if(document.getElementById(gSpanFooter)){
		var divCssFooter = document.getElementById(gSpanFooter);
		divCssFooter.style.color = gColorFooter;
		}
	if(document.getElementById(gSpanFooter2)){
		var divCssFooter = document.getElementById(gSpanFooter2);
		divCssFooter.style.color = gColorFooter;
		}
	}

//=====================================================
//==== apply Iframe Css Style for each Widget       ===
//===================================================== 
function mainCustomIframe(widget,iframe){

	iframe.style.visibility = 'visible';
	var adjustHeight  = 0;
	
	switch(widget){
		
		case"ecal": {
			adjustHeight = adaptHeightByBrowser('ecal'); 
			iframe.width='220';
			iframe.marginheight='0';
			iframe.marginwidth='0';
			iframe.frameBorder='no';
			iframe.scrolling='no';
			if(document.getElementById(gMainFrameDiv)){
				var divCssFooter=document.getElementById(gMainFrameDiv);
				divCssFooter.style.width='195px';
				divCssFooter.style.textAlign='center';
				}
			if(document.getElementById(gFooterDiv)){
				var divCssFooter=document.getElementById(gFooterDiv);
				divCssFooter.style.width='195px';
				divCssFooter.style.textAlign='center';
				divCssFooter.style.margin="2px";
				}
				break;
			}

		case"ecount":{
			adjustHeight = adaptHeightByBrowser('ecount');
			iframe.width='220';
			iframe.marginheight='0';
			iframe.marginwidth='0';
			iframe.frameBorder='no';
			iframe.scrolling='no';
			if(document.getElementById(gMainFrameDiv)){
				var divCssFooter=document.getElementById(gMainFrameDiv);
				divCssFooter.style.width='195px';
				divCssFooter.style.textAlign='center';
				}
			if(document.getElementById(gFooterDiv)){
				var divCssFooter=document.getElementById(gFooterDiv);
				divCssFooter.style.width='195px';
				divCssFooter.style.textAlign='center';
				divCssFooter.style.margin="2px";
				}
				break;
			}


        /*
         * This is a hacky quick-fix for #2450. 
         * The iframe.src is getting set to a vanity url instead of www.eventbrite.com/event/{eid}.
         * As a result, getWidgetCode() return "widget" instead of "etckt".
         * The correct fix is to set the iframe.src differently in the python code.
         */

		case "widget":
		case"etckt":{
			adjustHeight = adaptHeightByBrowser('etckt');
			iframe.width='100%';
			iframe.marginheight='5';
			iframe.marginwidth='5';
			iframe.vspace='0';
			iframe.hspace='0';
			iframe.scrolling='auto';
			iframe.allowtransparency='true';
			if(document.getElementById(gMainFrameDiv)){
				var divCssFooter=document.getElementById(gMainFrameDiv);
				divCssFooter.style.width='100%';
				divCssFooter.style.textAlign='left';
				}
			if(document.getElementById(gFooterDiv)){
				var divCssFooter=document.getElementById(gFooterDiv);
				divCssFooter.style.width='100%';
				divCssFooter.style.textAlign='left';
				}
			break;
			}
			
		case"eweb":{
			adjustHeight = adaptHeightByBrowser('eweb');
			iframe.width='100%';
			iframe.marginheight='5';
			iframe.marginwidth='5';
			iframe.vspace='0';
			iframe.hspace='0';
			iframe.scrolling='auto';
			iframe.allowtransparency='true';
			if(document.getElementById(gMainFrameDiv)){
				var divCssFooter=document.getElementById(gMainFrameDiv);
				divCssFooter.style.width='100%';
				divCssFooter.style.textAlign='left';
				}
			if(document.getElementById(gFooterDiv)){
				var divCssFooter=document.getElementById(gFooterDiv);
				divCssFooter.style.width='100%';
				divCssFooter.style.textAlign='left';
				}
			break;
			}
		}
	return  adjustHeight ;

	}
	
//================================================
//=== Tool to retrieve Url parameters          ===
//================================================ 	
function gup(url,name){
	name=name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS="[\\?&]"+name+"=([^&#]*)";
	var regex=new RegExp(regexS);
	var results=regex.exec(url);
	if(results==null)
		return"";
	else
		return results[1];
	}
		
//==============================================
//=== get widget Type                        ===
//==============================================
function getWidgetCode(url){
	if(url.indexOf('/calendar') >=0 )
		return 'ecal';
	else if(url.indexOf('/countdown') >=0 )
		return 'ecount';
	else if(url.indexOf('/event') >=0 )
		return 'eweb';
	else if(url.indexOf('/tickets') >=0 )
		return 'etckt';
	else
		return 'widget';
	}
	
//=============================================
//=== adjust Iframe height for each Browser ===
//=============================================
function adaptHeightByBrowser(currentWidget) {
	
    	var currentVersion = navigator.appVersion ;
    	var currentApp = navigator.appName  ;
    	var currentCode = navigator.appCodeName  ;
    	var currentOs = navigator.platform;
    	var adjust = 0;
    	//alert(currentVersion + ' ' + currentApp);
    	//======================================
    	//=== Mac / Os                       === 
    	if (currentVersion.indexOf("Mac") >= 0  || currentVersion.indexOf("Safari") >= 0)  {
			switch(currentWidget){
				case"ecal": {
        			return  25 ;
        			break;
					}
				case"etckt": {
        			return  10 ;
        			break;
					}
				case"ecount": {
        			return  25;
        			break;
					}
				case"eweb": {
        			return  10;
        			break;
					}
				}
			}
		//======================================
		//=== FF3 under Windows              ===
    	if (currentApp.indexOf("Netscape") >=0  && currentOs.indexOf('Win32') >= 0) {
			switch(currentWidget){
				case"ecal": {
        			return  20 ;
        			break;
					}
				case"etckt": {
        			return  25;
        			break;
					}
				case"ecount": {
        			return  10;
        			break;
					}
				case"eweb": {
        			return  10;
        			break;
					}
				}
			}
		//======================================
		//=== Internet explorer              ===
    	if (currentVersion.indexOf("MSIE") >=0 && currentOs.indexOf('Win32') >= 0) {
			switch(currentWidget){
				case"ecal": {
        			return  65 ;
        			break;
					}
				case"etckt": {
        			return  30;
        			break;
					}
				case"ecount": {
        			return  50;
        			break;
					}
				case"eweb": {
        			return  40;
        			break;
					}
				}
			}
		return  20 ;
	}

