var allTemplates = new Array();
var keywordState = (explode(directory[0],','))[0];
var tabState = "Related links";
var freeSearchKeyword = 'Search here';
var searchDelay = 500;

mivaErrors = false;
var mivaErrFlag = false;
window.onerror = handleError;

var mivaMenuTemplate = "<div class=\"mivaBorder_left\"></div><div class=\"mivaBorder_right\"></div><div class=\"MivaAds\"><a href=\"mivaLink\" onClick=\"\" class=\"mivaTabLink\">mivaName</a></div>";

var mivaMenuActiveTemplate = "<div class=\"mivaBorderActive_left\"></div><div class=\"mivaBorderActive_right\"></div><div class=\"MivaAdsActive\"><a href=\"mivaLink\" onClick=\"\" class=\"mivaTabLink_active\">mivaName</a></div>";

var mivaResultTemplate = "<table border=\"0\" cellpadding=\"10\" cellspacing=\"0\">\
		<tbody>\
			mivaresult\
			<tr valign=\"middle\">\
				<td>cpcstart<div class=\"logo2\"><a href=\"mivaActualURL\" target=\"_blank\"><img src=\"mivaImageURL\" border=\"0\" alt=\"Logo\"></a></div>cpcend</td>\
				<td><a href=\"mivaActualURL\" class=\"title\" target=\"_blank\">\
					mivaTitle\
					</a><br>\
					<a href=\"mivaActualURL\" class=\"description\" target=\"_blank\">\
					mivaDescription\
					</a><br>\
					<a href=\"mivaActualURL\" class=\"url\" target=\"_blank\">\
					mivaShowURL\
					</a></td>\
			</tr>\
			mivaresult\
		</tbody>\
	</table>";

var mivaResultTopSearchesTemplate = "<table border=\"0\" cellpadding=\"15\" cellspacing=\"0\">\
		<tbody>\
			mivaresult\
			<tr valign=\"middle\">\
				<td><a href=\"mivaActualURL\" class=\"title\" target=\"_blank\">\
					mivaPosition. mivaTitle\
					</a><br>\
					<a href=\"mivaActualURL\" class=\"description\" target=\"_blank\">\
					mivaDescription\
					</a><br>\
					<a href=\"mivaActualURL\" class=\"url\" target=\"_blank\">\
					mivaShowURL\
					</a></td>\
			</tr>\
			mivaresult\
		</tbody>\
	</table>";
	
	
var mivaSearchTemplate = "\
<div class=\"searchBox\"><span class=\"search\">Search the web</span>\
		<input type=\"text\" id=\"keyword\" name=\"keyword\" class=\"keywordButton\" value=\"\" onKeyDown=\"return filterSearch(event.keyCode);\"/><input type=\"button\" name=\"Search\" value=\"Search\" onClick=\"document.getElementById('mivaMain').innerHTML = mivaAds(document.getElementById('keyword').value,'main',true);var keywordState = document.getElementById('keyword').value;\"/>\
</div>"
	
var mivaBottomSearchTemplate = "\
<div class=\"searchBox\" style=\"text-align:center;\"><span class=\"search\">Search the web</span>\
		<input type=\"text\" id=\"keywordBottom\" name=\"keywordBottom\" class=\"keywordButton\" value=\"\" onKeyDown=\"return filterBottom(event.keyCode);\"/><input type=\"button\" name=\"Search\" value=\"Search\" onClick=\"document.getElementById('mivaMain').innerHTML = mivaAds(document.getElementById('keywordBottom').value,'main',true);var keywordState = document.getElementById('keywordBottom').value;\"/>\
</div>"

function mivaInit() {
	
	setTimeout('mivaTop();',150);
	setTimeout('mivaSide();',200);	
	setTimeout("var templateHTML = mivaResultTemplate;document.getElementById('mivaMain').innerHTML = mivaAds(initialSearch,'main',true);",50);
	setTimeout("document.getElementById('mivaSideContent').innerHTML = mivaLinks();",100);
}

function findCat(termIn) {
	for (var i = 0; i < directory.length; i++) {
		listStr = explode(directory[i],',');
		catName = listStr[0];
		if (termIn == catName) {
			return termIn;
		} else {
			for (var term = 0; term < listStr.length; term++) {
				if (listStr[term] == termIn) {
					return catName;
				}
			}
		}
	}
}

function mivaTop() {
	topArr = new Array();
	for (var i = 0; i < directory.length; i++) {
		listStr = explode(directory[i],',');
		topArr[i] = listStr[0];
	}
	finalOut = '';
	for (var i = 0; i < topArr.length; i++) {
		finalOut = finalOut + '<td class="MivaAds">'+ drawTab(topArr[i],'mivaMain',"mivaAds('" + topArr[i] +"','main',false);keywordState = '" + topArr[i] + "';mivaTop();") + '</td>';
	}
	document.getElementById('mivaTop').innerHTML = '<table width="100%" cellpadding="0" cellspacing="0" border="0">' + finalOut + '</table>';
}

var timerVar;

function startSearchTimer() {
	clearTimeout(timerVar);
	timerVar = setTimeout("freeSearchKeyword = document.getElementById('keyword').value;document.getElementById('mivaMain').innerHTML = mivaAds(document.getElementById('keyword').value,'main',true);",searchDelay);
}


function drawTab(tabText,target,content) {
	if (tabText.toLowerCase() == unescape(keywordState).toLowerCase() || findCat(keywordState).toLowerCase() == tabText.toLowerCase() || tabText == tabState) {
		templateHTML = mivaMenuActiveTemplate;
	} else {
		templateHTML = mivaMenuTemplate;
	}
	
	
	templateHTML = templateHTML.replace(/mivaName/gi,tabText);
	templateHTML = templateHTML.replace(/mivaLink/gi,'#');
	templateHTML = templateHTML.replace(/[onclickONCLICK]{7} *= *['"]{1} *['"]{1}/gi,"onClick=\"document.getElementById('" + target + "').innerHTML = " + content + "\"");
	
	return templateHTML;
}

function mivaSide() {
	document.getElementById('mivaSide').innerHTML = '<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td class="MivaAds">' + (
													drawTab('Related links','mivaSideContent',"mivaLinks();tabState ='Related links';mivaSide();") + '</td><td class="MivaAds">' + 
													drawTab('Top Searches','mivaSideContent',"mivaAds('" + topSearchesKeyword +"','side');tabState ='Top Searches';mivaSide();") + '</td><td class="MivaAds">' + 
													drawTab('Search','mivaSideContent',"mivaSearchTemplate;tabState ='Search';mivaSide();")
													) + '</td></tr></table>';
}



function filterBottom(key){
	var keywordState = document.getElementById('keywordBottom').value;
     if (parseInt(key) == 13) {
			document.getElementById('mivaMain').innerHTML = mivaAds(document.getElementById('keywordBottom').value,'main',true);
	 }
	return true
}

function filterSearch(key){
	var keywordState = document.getElementById('keyword').value;
     if (parseInt(key) == 13) {
			document.getElementById('mivaMain').innerHTML = mivaAds(document.getElementById('keyword').value,'main',true);
	 }
	return true
}


var	templateHTML = mivaResultTemplate

function mivaAds(keyword,type,backfill) {

	if (type == 'main') {
		url = "scripts/mivaFetch." + serverArch + "?keyword=" + keyword + "&affiliateid=" + affiliateid + "&hits=" + mainHits + "&resulttype=javascript.xsl";
	} else if (type == 'side') {
		url = "scripts/mivaFetch." + serverArch + "?keyword=" + keyword + "&affiliateid=" + affiliateid + "&hits=" + sideHits + "&resulttype=javascript.xsl";
	}
	
	if (backfill == true && adBackFill == true) {
		url = url + '&bkfill=1';	
	}

	if (type == 'main') {
		var templateHTML = mivaResultTemplate;
	} else if (type == 'side' ) {
		var templateHTML = mivaResultTopSearchesTemplate;
	}
	
	eval(mivaLoader(url));
	if (type == 'main') {
		return stOut + mivaBottomSearchTemplate;
	} else if (type == 'side') {
		return stOut;
	}
}

function mivaLoader(fullUrl) {

	if (window.XMLHttpRequest) {    
  	  req = new XMLHttpRequest();    
 	   req.open("GET",fullUrl,false); // true= asynch, false=wait until loaded    
 	   req.send(null);
	} else if (window.ActiveXObject) {    
   	req = new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5') != -1) ? "Microsoft.XMLHTTP" : "Msxml2.XMLHTTP");
  	  if (req) {
        req.open("GET", fullUrl, false);
        req.send();
    }
}
if (req!==false) {
    if (req.status==200) {
        return(req.responseText);
    } else if (req.status==404) {
    }
}
}




function mivaLinks(type) {
	linksOut = '<div style="padding-left:15px">';
	for (var cat = 0; cat < directory.length; cat++) {
		listStr = explode(directory[cat],',');
			for (var lin = 0; lin < listStr.length; lin++) {
				
				if (lin < listStr.length - 1) {
					linkDeco = '|';
				} else {
					linkDeco = '';
				}
				
				if (lin == 0) {
					linksOut = linksOut + "<a href=\"#\" onclick=\"document.getElementById('mivaMain').innerHTML = mivaAds('" + escape(listStr[lin]) + "','main',false);keywordState = '" + listStr[lin] + "';mivaTop();\" class=\"title\">" + listStr[lin] + "</a> ";
				} else {
					linksOut = linksOut + "<a href=\"#\" onclick=\"document.getElementById('mivaMain').innerHTML = mivaAds('" + escape(listStr[lin]) + "','main',false);keywordState = '" + listStr[lin] + "';mivaTop();\" class=\"title relatedlinks\">" + listStr[lin] + ' <span class="grey">' + linkDeco + "</a> ";
				}
				if (lin == 0) {
					linksOut = linksOut + '<br/>';
				}
			}
		
		linksOut = linksOut + '<br/><br/>';
	}
	return (linksOut + '</div>');
}

function deleteNode(nodeName) {
	mivaTemplate = document.getElementById(nodeName);
	mivaTemplate.parentNode.removeChild(mivaTemplate);
}

function getElementsByClassName(searchClass, node, tag) {var classElements = new Array();if (node == null) {node = document;}if (tag == null){tag = '*';}var els = node.getElementsByTagName(tag);var elsLen = els.length;var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");for (var i = 0, j = 0; i < elsLen; i++){if (pattern.test(els[i].className)){classElements[j] = els[i];j++;}}return classElements;}

function explode(string,delim) {
	var myString = new String(string);
	var myArray = myString.split(delim);
	return myArray;
}

function implode(array1,stringJoiner) {
	newArr = new Array();
	for (var i = 0; i < array1.length; i++) {
		if (array1[i] != null && array1[i] != 'undefined' && array1[i] != '') {
			newArr[i] = array1[i];
		}
	}
	return newArr.join(stringJoiner)	
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function getURLParam(strParamName){var strReturn = "";var strHref = window.location.href;if ( strHref.indexOf("?") > -1 ){var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();var aQueryString = strQueryString.split("&");for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){if (aQueryString[iParam].indexOf(strParamName + "=") > -1 ){var aParam = aQueryString[iParam].split("=");strReturn = aParam[1];break;}}}return unescape(strReturn);}

function handleError(msg,url,l) {
	if (mivaErrors == true) {
		consoleMsg("<strong>Error:</strong> " + msg + "<br/>Line: " + l + " in " + url);
	}
	return true;
}


function consoleMsg(Msg) {
	if (mivaErrors == true) {
		if (mivaErrFlag == false) {
			var mivaErrorDiv=document.createElement('div');
			mivaErrorDiv.setAttribute('id','mivaErrorDiv');
			mivaErrorDiv.setAttribute('name','mivaErrorDiv');
			mivaErrorDiv.style.position = 'absolute';
			mivaErrorDiv.style.overflow = 'auto';
			mivaErrorDiv.style.top = '0px';
			mivaErrorDiv.style.right = '0px';
			mivaErrorDiv.style.width = '550px';
			mivaErrorDiv.style.height = '137px';
			mivaErrorDiv.style.padding = '6px';
			mivaErrorDiv.style.font = '12px courier';
			mivaErrorDiv.style.color = '#ffffff';
			mivaErrorDiv.style.backgroundColor = '#000000';
			document.body.appendChild(mivaErrorDiv);
			fadeLayer('in','mivaErrorDiv',40,10,0);
			mivaErrFlag = true;

		}
		document.getElementById('mivaErrorDiv').innerHTML = document.getElementById('mivaErrorDiv').innerHTML + Msg + "<br/>";document.getElementById('mivaErrorDiv').scrollTop = document.getElementById('mivaErrorDiv').scrollHeight;
	}
}

function getURLParam(strParamName){var strReturn = "";var strHref = window.location.href;if ( strHref.indexOf("?") > -1 ){var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();var aQueryString = strQueryString.split("&");for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){if (aQueryString[iParam].indexOf(strParamName + "=") > -1 ){var aParam = aQueryString[iParam].split("=");strReturn = aParam[1];break;}}}return strReturn;}
function checkIt(string) {if (BrowserDetect.indexOf(string) > -1) {return true;} else {return false}}
function setLayerAlpha(target_layer,alpha_value) {document.getElementById(target_layer).style.opacity = (alpha_value / 100);document.getElementById(target_layer).style.filter = "alpha(opacity=" + alpha_value + ");";document.getElementById(target_layer).style.MozOpacity = (alpha_value / 100);}
function hideLayer(layer_name) {document.getElementById(layer_name).style.visibility = 'hidden';}
function showLayer(layer_name) {document.getElementById(layer_name).style.visibility = 'visible';}
function fadeLayer(action,start_layer,amount,speed,delay) {if (action == 'in') {setLayerAlpha(start_layer,0);showLayer(start_layer);} else {setLayerAlpha(start_layer,amount);}i = 0;while (i < amount) {munus_i = (amount - i);if (action == 'in') {setTimeout("setLayerAlpha('" + start_layer + "'," + i + ");",(speed * i) + delay);} else {setTimeout("setLayerAlpha('" + start_layer + "'," + munus_i + ");",(speed * i) + delay);	}i++;}}

