var MainClass = Class.create();
MainClass.prototype = {
	initialize: function(){
		if(this._isOption("contact")){
			this.showContact("support");
		}
	},
	init: function(){
	},
	initUI: function(){
		//this._roundCorners();
	},
	getLastPublicSeminars: function(){
		new Ajax.Request("scripts/index.php?get_last_public_seminars&t="+(new Date()).getTime(),{			
			onSuccess: this.loadLastSeminars.bind(this),
			onFailure: this.errorLastSeminars.bind(this)
		});		
	},
	getEventPublicSeminars: function(nEvent){
		new Ajax.Request("scripts/index.php?get_event_public_seminars&e="+nEvent,{			
			onSuccess: this.loadEventPublicSeminars.bind(this),
			onFailure: this.errorEventPublicSeminars.bind(this)
		});		
	},
	submitLogin: function(tForm){
		if(tForm.user.value==""){
			alert("Debe ingresar nombre de usuario.");
			return;
		}
		
		if(tForm.pass.value==""){
			alert("Debe ingresar clave.");
			return;
		}	
		tForm.submit();
	},
	loadLastSeminars: function(tTransport){
		$("LastSeminarsLoading").hide();
		if(tTransport.responseText==""){
			this.errorLastSeminars();
			return;
		}
		tResult = tTransport.responseText.evalJSON();
		if(tResult.status){
			szHTML = "";
			var events = new Array();
			var bFound = false;
			for(i=0;i<tResult.rows;i++){
				if (tResult.data[i].even_id > 0) {
					for (j=0;j<events.length;j++) {
						if (tResult.data[i].even_id == events[j]) {
							bFound = true;
						}
					}	
					events[i] = tResult.data[i].even_id;
					if (!bFound) {
						szHTML += "<div class='LastSeminar' onClick=\"tMainClass.getEventPublicSeminars("+tResult.data[i].even_id+")\">";                                         
               			szHTML += "<span class='LastSeminarName'>" + tResult.data[i].semi_name+"</span>";

       	 	        	szHTML += "<span class='LastSeminarCompany'>"+tResult.data[i].clie_name+"</span>";
       	    	    	szHTML += "<span class='LastSeminarDate'>"+tResult.data[i].semi_date_+"</span>";                    
       	       			szHTML += "</div>";			
					}
				}	
				else {
					szHTML += "<div class='LastSeminar' onClick=\"tMainClass.showSeminar("+tResult.data[i].semi_id+",'"+escape(tResult.data[i].semi_name)+"')\">";                                         
    	            szHTML += "<span class='LastSeminarName'>"+ tResult.data[i].semi_name+"</span>";
       	 	        szHTML += "<span class='LastSeminarCompany'>"+tResult.data[i].clie_name+"</span>";
       	    	    szHTML += "<span class='LastSeminarDate'>"+tResult.data[i].semi_date_+"</span>";                    
       	       		szHTML += "</div>";			
				}
			}
			$("LastSeminars").innerHTML = szHTML;
		}
		else{
			$("LastSeminars").innerHTML=tResult.error;
			return; 
		}			
	},

	loadEventPublicSeminars: function(tTransport){
		$("LastSeminarsLoading").hide();
		if(tTransport.responseText==""){
			this.errorLastSeminars();
			return;
		}
		tResult = tTransport.responseText.evalJSON();
		if(tResult.status){

			if($("EventDialog").innerHTML==""){

				szHTML = "";
				for(i=0;i<tResult.rows;i++){
					szHTML += "<div class='LastSeminar' onClick=\"tMainClass.showSeminar("+tResult.data[i].semi_id+",'"+escape(tResult.data[i].semi_name)+"')\">";                                         
	    	        szHTML += "<span class='LastSeminarName'>"+tResult.data[i].semi_id + " " + tResult.data[i].semi_name+"</span>";
	       	 	    szHTML += "<span class='LastSeminarCompany'>"+tResult.data[i].clie_name+"</span>";
	       	        szHTML += "<span class='LastSeminarDate'>"+tResult.data[i].semi_date_+"</span>";                    
   	    	       	szHTML += "</div>";			
				}
				szHTML += '<input type="button" value="Volver" onclick="tMainClass.hideEvent();"/>';
				$("EventDialog").innerHTML = szHTML;		
				(new curvyCorners({tl:{radius:7},tr:{radius:7},bl:{radius:7},br:{radius:7},antiAlias: true,autoPad: true,validTags: ["div"]},$("EventDialog"))).applyCornersToAll();
			}
		
			Popup.showModal("EventDialog",null,null,{'screenColor':'#F7FDFD','screenOpacity':0.9});
		}
	},	
	errorLastSeminars: function(){
		$("LastSeminarsLoading").hide();
		$("LastSeminars").innerHTML="No ha sido posible cargar &uacute;ltimos seminarios";
	},
	
	errorEventPublicSeminars: function(){
		$("LastSeminarsLoading").hide();
		//$("LastSeminars").innerHTML="No ha sido posible cargar &uacute;ltimos seminarios";
	},
	toggleInfo: function(szInfoId){
		tInfo = $(szInfoId);
		if(tInfo){
			if((this.tLastInfo!=null)&&(this.tLastInfo!=tInfo)){
				this.tLastInfo.style.display="none";
			}
			if(tInfo.style.display=="none"||tInfo.style.display==""){
				tInfo.style.display="block";
				this._ensureVisibleVertical($("Infos"),tInfo);		 
			}
			else{
				tInfo.style.display="none";
			}
			this.tLastInfo = tInfo;
		}
	},
	showNews: function(){
		if(this.tLastInfo!=null){
			this.tLastInfo.style.display="none";
			this.tLastInfo=null;
		}		
		if($("NewsDialog").innerHTML==""){
			szHTML =  '<div id="NewsLoading"><img src="images/icon_loading.gif"/></div>';              
			szHTML += '<span class="DialogTitle">Prensa</span>';
			szHTML += '<div id="NewsCount"></div>';
			szHTML += '<div id="NewsList"></div>';
			szHTML += '<span class="Submit"><input type="button" value="Cerrar" onclick="tMainClass.hideNews();"/></span>';						
			$("NewsDialog").innerHTML = szHTML;
			(new curvyCorners({tl:{radius:7},tr:{radius:7},bl:{radius:7},br:{radius:7},antiAlias: true,autoPad: true,validTags: ["div"]},$("NewsDialog"))).applyCornersToAll();
		}	
		Popup.showModal("NewsDialog",null,null,{'screenColor':'#F7FDFD','screenOpacity':0.9});		
		
		new Ajax.Request("scripts/?get_news&t="+(new Date()).getTime(),{
			method: 'post',			
			onSuccess: this.loadNews.bind(this),
			onFailure: this.errorNews.bind(this)
	  	});	
	},
	loadNews: function(tTransport){		
		$("NewsLoading").hide();
		if(tTransport.responseText==""){
			this.errorNews();
			return;
		}
		tResult = tTransport.responseText.evalJSON();
		if(tResult.status){
			if(0<tResult.rows){
				$("NewsCount").innerHTML = tResult.rows+" noticias";
				szHTML = "";
				for(i=0;i<tResult.rows;i++){
					szHTML += "<div class='NewsArticle'>";
					szHTML += "<div class='NewsTitle'><a href='javascript:void(0)' onclick='tMainClass.showNewsContent(\""+tResult.data[i].news_content+"\");'>"+tResult.data[i].news_title+"</a></div>";					
					szHTML += "<div class='NewsNewspaper'>"+tResult.data[i].news_newspaper+"</div>";
					szHTML += "<div class='NewsDate'>"+tResult.data[i].news_date+"</div>";
					szHTML += "</div>";
				}
				$("NewsList").innerHTML = szHTML;
			}
		}
		else{
			alert(tResult.error);
			return; 
		}		
	},
	errorNews: function(){
		$("NewsLoading").hide();
		alert("Ha surgido un error al cargar notas de prensa");
	},
	hideNews: function(){
		Popup.hide("NewsDialog");
	},
	showNewsContent: function(szNewsContent){
		window.open("http://www.mundovision.cl/"+szNewsContent,"mv_news","left="+((screen.availWidth-800)/2)+",top="+((screen.availHeight-600)/2)+",width=800px,height=600px,resizable=yes,toolbar=no,scrollbars=yes,menubar=no,statusbar=no,directories=no,fullscreen=yes");	
	},
	showRequirements: function(){
		if($("RequirementDialog").innerHTML==""){
			szHTML =  '<span class="DialogTitle">Revisi&oacute;n de requerimientos</span>';
			szHTML += '<span class="Text">Sistema Operativo</span>';
			szHTML += '<span id="ReqSO" class="Input"></span>';
			szHTML += '<span class="Text">Navegador</span>';
			szHTML += '<span id="ReqBrowser" class="Input"></span>';
			szHTML += '<span class="Text">Windows Media Player</span>';
			szHTML += '<span id="ReqWMP" class="Input"></span>';
			szHTML += '<span id="ReqStatus" class="Status"></span>';
			szHTML += '<span class="Submit"><input type="button" value="Cerrar" onclick="tMainClass.hideRequirements();"/></span>';		
			$("RequirementDialog").innerHTML = szHTML;		
			(new curvyCorners({tl:{radius:7},tr:{radius:7},bl:{radius:7},br:{radius:7},antiAlias: true,autoPad: true,validTags: ["div"]},$("RequirementDialog"))).applyCornersToAll();
		}		
		tSystemInfo = this._getSystemInfo();
		$szNotice = ""; 
	
		tReqSO = $("ReqSO"); 
		if(tReqSO){
			tReqSO.innerHTML = tSystemInfo['platform'];
			if(tSystemInfo['platform']=="Windows"){
				tReqSO.innerHTML += "&nbsp;<img src='images/icon_ok.png' width='16px' height='16px'>";
			}
			else{
				tReqSO.innerHTML += "&nbsp;<img src='images/icon_error.png' width='16px' height='16px'>";
				$szNotice = "Debe utilizar un Sistema Operativo Windows XP o Vista<br><br>";
			}
		}
		
		tReqBrowser = $("ReqBrowser"); 
		if(tReqBrowser){
			tReqBrowser.innerHTML = tSystemInfo['browser']+" "+tSystemInfo['browser_version'];
			if((tSystemInfo['browser']=="Internet Explorer" && tSystemInfo['browser_version']>=6)||
	           (tSystemInfo['browser']=="Firefox" && tSystemInfo['browser_version']>=2)||
			   (tSystemInfo['browser']=="Safari" && tSystemInfo['browser_version']>=3.1)){
				tReqBrowser.innerHTML += "&nbsp;<img src='images/icon_ok.png' width='16px' height='16px'>";
			}
			else{
				tReqBrowser.innerHTML += "&nbsp;<img src='images/icon_error.png' width='16px' height='16px'>";
				$szNotice += "Su navegador no es soportado, utilice Internet Explorer 6 o superior, Firefox 2 o superior o Safari 3.1 (para Windows)<br><br>";				
			}
		}
		
		tReqWMP = $("ReqWMP"); 
		if(tReqWMP){
			tReqWMP.innerHTML = (tSystemInfo['wmp']==0)?("No"):(tSystemInfo['wmp_version']);
			if(tSystemInfo['wmp'] && parseInt(tSystemInfo['wmp_version'])>=9){
				tReqWMP.innerHTML += "&nbsp;<img src='images/icon_ok.png' width='16px' height='16px'>";
			}
			else{
				tReqWMP.innerHTML += "&nbsp;<img src='images/icon_error.png' width='16px' height='16px'>";
				if(parseInt(tSystemInfo['wmp_version'])<9){
					$szNotice += "La versi&oacute;n de Windows Media Player no es soportada puede actualizarla desde <a href='http://www.microsoft.com/spain/windows/downloads/default.mspx' target='_blank'>aqu&iacute;</a><br><br>";
				}
				else{
					$szNotice += "Debe utilizar Windows Media Player 9 o superior<br><br>";
				}
			}
		}
		
		if($szNotice==""){
		   $szNotice = "Usted cumple con todos los requerimientos."; 
		}
	
		tReqStatus = $("ReqStatus"); 
		if(tReqStatus){
			tReqStatus.innerHTML = $szNotice;
		}
		Popup.showModal("RequirementDialog",null,null,{'screenColor':'#F7FDFD','screenOpacity':0.9});
	},
	hideRequirements: function(){
		Popup.hide("RequirementDialog");
		this.toggleInfo("Requirements");
	},
	showContact: function(szType){	
		if($("ContactDialog").innerHTML==""){
			szHTML  = '<form id="ConForm">';
			szHTML += '<input type="hidden" id="ConType" name="Tipo"/>';
			szHTML += '<input type="hidden" id="ConSystem" name="Sistema"/>';
			szHTML += '<span class="DialogTitle" id="ConTitle"></span>';
			szHTML += '<span class="Text">Nombre (*)</span>';
			szHTML += '<span class="Input"><input type="text" name="Nombre" checked="1"/></span>';
			szHTML += '<span class="Text">Empresa (*)</span>';
			szHTML += '<span class="Input"><input type="text" name="Empresa" checked="1"/></span>';
			szHTML += '<span class="Text">E-mail (*)</span>';
			szHTML += '<span class="Input"><input type="text" name="E-mail" checked="1"/></span>';
			szHTML += '<span class="Text">Tel&eacute;fono</span>';
			szHTML += '<span class="Input"><input type="text" name="Telefono"/></span>';
			szHTML += '<span class="Text">Solicitud</span>';
			szHTML += '<span class="Input"><textarea name="Solicitud" rows="3"></textarea></span>';
			szHTML += '<span class="Captcha"><img  id="ConCaptcha" src="scripts/?get_captcha"><br /><a href="javascript:tMainClass.changeContactCaptcha();">cambiar c&oacute;digo</a></span>';
			szHTML += '<span class="Text">Ingrese c&oacute;digo (*)</span>';
			szHTML += '<span class="Input"><input type="text" name="Codigo" checked="1"/></span>';                 
			szHTML += '<span class="Status" id="ConStatus"></span>';          
			szHTML += '<span class="Notice">(*) Datos obligatorios</span>';
			szHTML += '<span class="Submit"><input type="button" value="Enviar" onclick="tMainClass.submitContact(this.form);"/><input type="button" value="Cancelar" onclick="tMainClass.hideContact();"/></span>';                
			szHTML += '</form>';			
			$("ContactDialog").innerHTML = szHTML;		
			(new curvyCorners({tl:{radius:7},tr:{radius:7},bl:{radius:7},br:{radius:7},antiAlias: true,autoPad: true,validTags: ["div"]},$("ContactDialog"))).applyCornersToAll();
		}
	
		$("ConType").value = szType;	
		$("ConTitle").innerHTML = (szType=="support")?("Solicitud de soporte"):("Solicitud de informaci&oacute;n");
		this.changeContactCaptcha();
		Popup.showModal("ContactDialog",null,null,{'screenColor':'#F7FDFD','screenOpacity':0.9});
	},
	submitContact: function(tForm){
		szData=""
		for(i=0;i<tForm.length;i++){
			if(((tForm[i].name=="Nombre")||(tForm[i].name=="Empresa")||(tForm[i].name=="E-mail")||(tForm[i].name=="Codigo"))&&(tForm[i].value=="")){
				alert("Debe ingresar '"+tForm[i].name+"'.");
				return;
			}
			
			if(($("ConType").value=="support")&&(tForm[i].name=="Sistema")){
				tSystemInfo = this._getSystemInfo();
				szSystem  = "Sistema: "+tSystemInfo['platform']+"\n";	
				szSystem += "Navegador: "+tSystemInfo['browser']+" "+tSystemInfo['browser_version']+"\n";
				szSystem += "Windows Media Player: "+((tSystemInfo['wmp']==1)?(tSystemInfo['wmp_version']):("No"))+"\n";
				szSystem += "Resolucion: "+tSystemInfo['resolution'];
				szData += tForm[i].name+"="+szSystem+"&";
			}
			else if(tForm[i].name!=""){
				szData += tForm[i].name+"="+tForm[i].value+"&";
			}			
		}
		szData = szData.substr(0,szData.length-1);
		
		$("ConStatus").innerHTML = "<img src='images/icon_loading.gif'>"
	
		new Ajax.Request("scripts/?send_email&t="+(new Date()).getTime(),{
            method: 'post',
			parameters: szData,
            onSuccess: function(transport) {
  				if(transport.responseText==""){
            		alert("Error al enviar datos");	
					return;
        		}
        		tResult = transport.responseText.evalJSON();
        		if(tResult.status){
					$("ConStatus").innerHTML = "";
               	 	$("ConForm").reset();
                	Popup.hide("ContactDialog");
                	alert("Mensaje enviado exitosamente");
				}
				else{
					$("ConStatus").innerHTML = tRows[0].message;	
				}
			} ,
            onFailure: function(){
				alert("Error al enviar datos");
			}
        });
	},
	hideContact: function(){
		Popup.hide("ContactDialog");
		this.toggleInfo(($("ConType").value=="support")?("Support"):("Contact"));
	},
	changeContactCaptcha: function(){
		$("ConCaptcha").src="scripts/?get_captcha&t="+(new Date()).getTime();
	},

	hideEvent: function(){
		Popup.hide("EventDialog");
	},
	filterData: function(){
		this.startFilterTimerID = null; 
		var tKey = $("SearchText");
		if (!tKey.value){							
			dsSeminars.filter(null);
			return;
		}							
		var regExpStr = tKey.value;
		var regExp = new RegExp(regExpStr, "i");								
		var filterFunc = function(ds,row,rowNumber){
			var str = row["semi_name"];
			if (str && str.search(regExp) != -1)
				return row;
			return null;
		};
	
		dsSeminars.filter(filterFunc);
	},	
	startFilterTimer: function(){
		if(this.startFilterTimerID)
			clearTimeout(this.startFilterTimerID);
		this.startFilterTimerID = setTimeout(this.filterData,100);
	},
	showSeminar: function(nSemiId,szSemiName){
		this._openFullScreen("scripts/?view&id="+nSemiId);	
		pageTracker._trackPageview("/seminars/public/"+szSemiName);
	},
	gotoURL: function(szURL,szName){
		this._openFullScreen(szURL);	
		pageTracker._trackPageview(szName);
	},
	//Private
	_getSystemInfo: function(){
		BrowserDetect.init();
		tSystemInfo = new Array();		
		tSystemInfo['platform'] 		= BrowserDetect.OS;
		tSystemInfo['browser'] 			= BrowserDetect.browser;
		tSystemInfo['resolution'] 		= screen.width+"x"+screen.height;
		tSystemInfo['browser_version'] 	= BrowserDetect.version;
		tSystemInfo['wmp'] 				= 0;
		tSystemInfo['wmp_version'] 		= "";
		
		var tObject = document.createElement("object");
		if(tObject){
			tObject.setAttribute("id", "MediaPlayer");
			if(tSystemInfo['browser']=="Internet Explorer"){
				tObject.setAttribute("classid", "CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6");
			}
			else{
				tObject.setAttribute("type", "application/x-ms-wmp");
			}
			var tParam1 = document.createElement("param");
			tParam1.setAttribute("name","uiMode");
			tParam1.setAttribute("value","none");
			tObject.appendChild(tParam1);
			
			document.body.appendChild(tObject);
			
			tMediaPlayer = $("MediaPlayer");
			if(tMediaPlayer){
				tSystemInfo['wmp'] = (tMediaPlayer.versionInfo!=undefined)?(1):(0);
				tSystemInfo['wmp_version'] = tMediaPlayer.versionInfo;
			}			
			tObject.parentNode.removeChild(tObject);
		}		
		return tSystemInfo;
	},	
	_ensureVisibleVertical: function(tContent,tObject){
			if((tObject)&&(tContent)){
				var nTopContent    = tContent.scrollTop;
				var nHeightContent = tContent.offsetHeight;
				var nBottomContent = nTopContent + nHeightContent;
				var nTopObject     = this._getYPos(tObject)-this._getYPos(tContent);
				var nHeightObject  = tObject.offsetHeight;
				var nBottomObject  = nTopObject + nHeightObject;		
				
				if(nTopObject<nTopContent){//desplazar arriba
					tContent.scrollTop = nTopObject-3;
				}
				else if(nBottomContent<nBottomObject){//desplazar abajo
					tContent.scrollTop = nTopObject+nHeightObject+3-nHeightContent;
				}
			}
	},	
	_getYPos: function(tObject){
		var y=0;
		while(tObject){
			y += tObject.offsetTop;
			tObject = tObject.offsetParent;
		}
		return y;
	},
	_roundCorners: function(){
		tSettings  = {tl:{radius:3},tr:{radius:3},bl:{radius:3},br:{radius:3},antiAlias: true,autoPad: true,validTags: ["div"]};
		(new curvyCorners(tSettings,$("Header"))).applyCornersToAll();
		(new curvyCorners(tSettings,$("Banner"))).applyCornersToAll();
		(new curvyCorners(tSettings,$("LeftBox"))).applyCornersToAll();
		(new curvyCorners(tSettings,$("RightBox"))).applyCornersToAll();
		
		tBanners = $$("div.BannerEvent");
		if(tBanners){
			for(i= 0;i<tBanners.length;i++) {
				(new curvyCorners(tSettings,tBanners[i])).applyCornersToAll();
			}		
		}
	},
	_isOption: function(szOption){
		return (window.location.href.indexOf("/?"+szOption)!=-1)
	},
	_openFullScreen: function(szURL){
		BrowserDetect.init();
		if(BrowserDetect.browser=="Safari"){ //Browser--InternetExplorer
			window.open(szURL,"mv_webinar","top=0,left=0,width="+screen.availWidth+"px,height="+(screen.availHeight-25)+"px,resizable=no,toolbar=no,scrollbars=no,menubar=no,statusbar=no,directories=no,fullscreen=yes");	
		}
		else{
			window.open(szURL,"mv_webinar","top=0,left=0,width="+screen.availWidth+"px,height="+screen.availHeight+"px,resizable=no,toolbar=no,scrollbars=no,menubar=no,statusbar=no,directories=no,fullscreen=yes");	
		}
	}	
};

//////////////////////////////////
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "";
		this.OS = this.searchString(this.dataOS) || "";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			versionSearch: "Version",
			identity: "Safari"			
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Internet Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};

