var isIE6 = false;

var klInterface = new (function(){
	this.init = init;
	this.showLayer = showLayer;	 
	this.parseQuery = parseQuery;
	this.query = false;
	this.setReportLink = setReportLink
	this.setSendToColleaguePopup = setSendToColleaguePopup;
	this.setStaticReports = setStaticReports; 
	this.setStaticChart = setStaticChart; 
	writeSIFR(); 
	return;
 
	function init() { 		  
		klInterface.setSendToColleaguePopup();  
		klInterface.setStaticReports();   
		klInterface.setStaticChart();   
    }  
	
	function showLayer(o,s) {   
		o.style.visibility = s ? "visible" : "hidden";  
		try {if (isIE6) sIFR_replacement_6 = document.getElementById("sIFR_replacement_6");}catch(e) {} 
	}  
	
	function parseQuery(s) { 
		var klq = klInterface.query;
		if (!klq) firstParse();
		var result = false; 
		if ((typeof s=="string") && klq.s[s]) result = klq.s[s];
		else if (klq.n.length >= s) result = klq.n[s];
		return result;
		
		function firstParse() {
			klq = {};
			klq.s = [];
			klq.n = [];
			var qS = (location.search.substring(1)).split('&');
			for (i=0;i<qS.length;i++) {
				qP = unescape(qS[i]).split('=');
				klq.s[qP[0]] = qP[1];  
				klq.n[i] = [qP[0],qP[1]]; 
			} 		
		}
	}	
	
	function setReportLink(n) {   
		var c = $c("klRankReports",0,1);
		if (!c) return;   
		o = $t("LI",$c("actionItems",c,1),1);
		var h = $t("HR",c,1);
		n--;
		if (o.length > n) {
			o[n].style.display = "block";
			h[0].style.display = "block";
		} else {
			for (var i=0;i<o.length;i++) {
				o[i].style.display = "none"; 
			}
			h[0].style.display = "none";
		}
	} 

	function setStaticReports() {  
		var sr = $c("klStaticReports",0,1);
		if (!sr) return;   
		var abstr = $c("abstract",sr,1); 
		if (!abstr) return;  
		var heading = $c("heading",sr,1); 
		if (!heading) { 
			sr.className = sr.className + " noHeading";
		} 
		
		var pag = $c("pagination",abstr,1)

		klInterface.abstracts = {};
		var kla = klInterface.abstracts;
		kla.sections = $c("section",abstr);  
		kla.current = -1; 
		kla.statusCurrent = $c("current",pag,1);
		kla.statusTotal = $c("total",pag,1);
		kla.statusTotal.innerHTML = kla.sections.length;
		
		kla.flip = function(k) {   
			try {  
				var n = kla.current + k; 
				if (n>-1&&n<kla.sections.length) {
					if (kla.current > -1) klInterface.showLayer(kla.sections[kla.current],false);
					kla.current = n; 
					klInterface.showLayer(kla.sections[n],true);    
					kla.statusCurrent.innerHTML = kla.current + 1; //set status 
				}
			} catch(e) {}
		} 
		kla.flip(1); //instantiate 
		
		//set links 
		if (kla.sections.length==1) {
			pag.style.visibility = "hidden";
			return;
		}
		var o = $c("previous",pag,1);
		o.onclick = function() { 
			klInterface.abstracts.flip(-1); 
		}  
		o = $c("next",pag,1);
		o.onclick = function() { 
			 klInterface.abstracts.flip(1); 
		} 
	}	
	
	function setStaticChart() { 
		var sr = $c("klCOCTable",$c("klSplash")[0]);
		if (sr.length==0) return;
		
		$(document).ready(function() {  
		    $("table.klCOCTable").tablesorter({ sortList: [[0,0]] });
		    $("table.klCOCTable").bind("sortStart",function() {}).bind("sortEnd",function() { 
		      	$("table.klCOCTable tbody tr").removeClass("odd");
				$("table.klCOCTable tbody tr").removeClass("even"); 
				$("table.klCOCTable tbody tr:odd").addClass("odd");
				$("table.klCOCTable tbody tr:even").addClass("even"); 
		    });
		});   
	}
	
	function setSendToColleaguePopup() {  
		var stc = $c("send",$c("klMenu")[0]);
		if (stc.length==0) return;  
		stc = stc[0];
		var o = $c("popupSendColleague",$c("klMenu")[0])[0];
		stc.onclick = function() {   
			klInterface.showLayer(o,true);  
		} 
		var cb = $c("close",o)[0];
		cb.onclick = function() { 
			klInterface.showLayer(o,false);  
		}  
	}
	
	function writeSIFR() {
		var frutigerBold = {src: 'http://www.mastercard.com/us/company/en/js/frutigerBold.swf'}; 
		var frutigerRoman = {src: 'http://www.mastercard.com/us/company/en/js/frutigerRoman.swf'};  
		var garamondLight = {src: 'http://www.mastercard.com/us/company/en/js/garamondLight.swf'}; 
		
		sIFR.useStyleCheck = true;
		sIFR.activate(frutigerBold,frutigerRoman,garamondLight);  
		sIFR.replace(frutigerBold, {    
		  	selector: 'div.klNav LI.on'
			, wmode: 'transparent'
			 ,css: [
		      '.sIFR-root { color:#3e0f1f;}'
		      ,'a { text-decoration: none; }'
		      ,'a:link { color: #3e0f1f; }'
		      ,'a:hover { color: #3e0f1f; }'
		    ]
		  });
		sIFR.replace(frutigerRoman, {    
		  	selector: 'div.klNav LI.off'
			, wmode: 'transparent'
			 ,css: [
		      '.sIFR-root { color:#333333;}'
		      ,'a { text-decoration: none; }'
		      ,'a:link { color: #333333; }'
		      ,'a:hover { color: #F8941D; }'
		    ]
		  });					 
		sIFR.replace(frutigerRoman, {    
		  	selector: '.klMenu h2'
			, wmode: 'transparent'
			, css: {
			      '.sIFR-root': { 'color': '#3e0f1f', 'letter-spacing': 1, 'leading' : 6 }
			 } 
 			}); 
		sIFR.replace(frutigerRoman, {    
		  	selector: '.klMenu h3'
			, wmode: 'transparent'
			, css: {
			      '.sIFR-root': { 'color': '#3e0f1f' }
			 } 
 			});    
		sIFR.replace(garamondLight, {    
		  	selector: '.klStaticReports h1, .klStaticReports .abstract h2'
			, wmode: 'transparent'
			, css: {
			      '.sIFR-root': { 'color': '#3e0f1f' }
			 } 
		});     
		sIFR.replace(garamondLight, {    
		  	selector: 'div.splash-panelists div.content-splash h3'
			, wmode: 'transparent'
			, css: {
			      '.sIFR-root': { 'color': '#3e0f1f' }
			 } 
		});
		sIFR.replace(garamondLight, {    
		  	selector: 'div.splash-panelists_prelim div.content-splash h3'
			, wmode: 'transparent'
			, css: {
			      '.sIFR-root': { 'color': '#3e0f1f' }
			 } 
		});
		sIFR.replace(garamondLight, {    
		  	selector: '.layout-emi_ranking .layout-header h1'
			, wmode: 'transparent'
			, css: {
			      '.sIFR-root': { 'color': '#3e0f1f' }
			 } 
		});
	}
})();  
 
function $c(c, o, fc){
	if (!c) return;
	var o = (o && o!=0) ? o : document.body;  
	var fc = !!(fc);  
  	var oRegExp = new RegExp("(\\b)" + c.replace(/-/g, "\-") + "(\\b)");
	var results = []; var no = []; 
	find(o);   
	return fc ? (results.length==0 ? false : results[0]) : results; 
	
	function find(o) { 
		for (var i=0; i<o.childNodes.length; i++) {
			no = o.childNodes[i]; 
			if (oRegExp.test(no.className)) { 
				results.push(no);  
			} 
			find(no);
		}  
	}
}

function $t(c, o, fc){
	if (!c) return;
	var o = o ? o : document.body;
	var fc = !!(fc);  
  	var oRegExp = new RegExp("(^|\s)" + c.replace(/-/g, "\-") + "(\s|$)", "i");
	var results = []; var no = []; 
	find(o);   
	return results;
	 
	function find(o) { 
		for (var i=0; i<o.childNodes.length; i++) {
			var no = o.childNodes[i]; 
			if (oRegExp.test(no.tagName)) {
				 results.push(no);  
			} 
			if (no.childNodes.length>0&&!fc) {
				find(no);
			}
		}  
	}
}


 $(document).ready(function() {  
		if($("#colleagueForm")){
			colleagueSubmission();
			clearFields();
			var fromLink = "http://www.mastercard.com/us/company/en/insights/studies/2008/wcoc/indexchart.html";
			var rLink = $("#referURL");
			rLink.attr('value', fromLink);	
		}		
	});
	
	function clearFields(){
		var txtFields = $(".sec1:first :text");
		txtFields.click(function(){			
			$(this).val('').unbind("click");
		});
	}
	

	
	function fieldCheck(){
	// if all for fields validate (name are not empty and emails are valid in format) then submit the form)
	// if any of the fields are not valid, apply the 'sendErr class to them and display the error message by
	// removing the 'hidden' class from it's <div>	
				
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;	
		var sender = $("#actual_sender_name");		
		var sEmail = $("#actual_sender_email");
		var colName = $("#recipient_name");
		var colEmail = $("#recipient_email");		
		var errorMsg = $(".sendErrMessage");
		var error = false;
		
		if(sender.val() == '' ){
			sender.addClass('sendErr');
			errorMsg.removeClass("hidden");
			error = true;
		} else {removeError(sender)}
		
		if(reg.test(sEmail.val()) == false){
			sEmail.addClass('sendErr');
			errorMsg.removeClass("hidden");
			error = true;
		} else {removeError(sEmail)}
		
		if(colName.val() == '' ){
			colName.addClass('sendErr');
			errorMsg.removeClass("hidden");
			error = true;
		} else {removeError(colName)}
		
		if(reg.test(colEmail.val()) == false){
			colEmail.addClass('sendErr');
			errorMsg.removeClass("hidden");
			error = true;
		} else {removeError(colEmail)}
		
		if (error == false){
			return true;
		}						
	}
	
	function removeError(input){
		if(input.hasClass('sendErr')){
			input.removeClass('sendErr');
		}
	}
 
	function colleagueSubmission(){	
		$("#colleagueForm").submit(function(){		
			if( ! fieldCheck()){
				return false;
			}
		});
	}
