var host = 'http://www.getjar.com';
var browserType;
if (document.layers) {browserType = "nn4"}
if (document.all) {browserType = "ie"}
if (window.navigator.userAgent.toLowerCase().match("gecko")) {browserType= "gecko"}

function get_cookie( name ) {

   var start = document.cookie.indexOf(name+"=");
   var len = start+name.length+1;
   if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
   if (start == -1) return null;
   var end = document.cookie.indexOf(";",len);
   if (end == -1) end = document.cookie.length;
   return unescape(document.cookie.substring(len,end));
   
}

function set_cookie( name, value, expires, path, domain, secure ) {

	var today = new Date();
	today.setTime( today.getTime() );
	var domain = '.getjar.com';
	if ( expires ) expires = expires * 1000;
	
	var expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
	( ( path ) ? ";path=" + path : "" ) + 
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}



function formatUrlPart( urlPart ) {
	if ( urlPart ) return urlPart.replace( '_', ' ' );
}

function explode_devices( dev_array ) {
	var devices = new Array();
	
	if ( dev_array ) {
		devices = dev_array.split( '___' );
		devices.shift();
	}
	return devices;
}

function getObject(id_name) {
	var strE = "document.getElementById('"+id_name+"')";
	var strS = "document.all['"+id_name+"']";
	var strP = "document.layers['"+id_name+"']";
	
	if (browserType == "gecko" ) document.poppedLayer = eval(strE);
    else if (browserType == "ie") document.poppedLayer = eval(strS);
    else document.poppedLayer = eval(strP);
	return document.poppedLayer; 
}

function AJAX_GET( link ) {
	var http_request = false; 
	if(window.XMLHttpRequest) http_request=new XMLHttpRequest();
	else if (window.ActiveXObject) http_request = new ActiveXObject("Microsoft.XMLHTTP");	
	if( !http_request ) return false; 
	
	window.status = "Please wait...";
	http_request.open('GET', link, false); 
	http_request.send("empty"); 
	window.status = ""; 
	
	if (http_request.readyState == 4 && http_request.status == 200 ) return http_request.responseText; 
	else return false;
}

function Show_myDevices( devices, showDevNum, selectDev ) {
	var model = '';
	var devInfo = '';
	var devLength = devices.length;
	if ( devices.length > showDevNum ) devLength = showDevNum;
	var requestUri = window.location.href;
	var html = '';
	var deviceSet = selectDev ? true : false;
	var LineColor = devLength <= 0 && deviceSet ? '#FF0000' : '#A5A9D5';
	var colorFirst = devLength <= 0 && deviceSet ? '#FF0000' : '#A5A9D5';
	var onClick = '';
	var langPart = '';
	
	var requestUri = window.location.href;
	if ( requestUri.match( 'www' ) == null ) host = host.replace( 'www.', '' );
	var myUrl = requestUri.split( host );
	myUrl = myUrl[1];
	url = js_explodeURL( myUrl, 'dir/p1/p2/p3/p4/p5' );
	var myLang = checkLanguage( url['dir'] );
	if ( myLang ) langPart = '/'+myLang;
	
	if ( devLength <= 0 && !deviceSet ) {
		var url = host+'/php/dir_site.php?action=ajax_loadDevMan';
		selectDev = AJAX_GET( url );
		deviceSet = true;
		LineColor = '#FF0000';
		colorFirst = '#FF0000';
	}
	
	html = '<table border="0" width="100%" cellpadding="0" cellspacing="0"><tr height="35">';
	html += '<td width="100" height="22" align="left" style="border-left: 0px solid '+colorFirst+'; border-right: 0px solid '+colorFirst+'; border-bottom: 2px solid '+colorFirst+'">';
	html += '<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"><tr><td rowspan="2"><img src="http://media.getjar.com/images/my_devices_phone.png">&nbsp;</td><td valign="bottom"><b><font size="1">My devices</font></b></td></tr><tr><td valign="top"><b><font size="1"><a href="javascript:loadDevSelect();">Select</a></font></b></td></tr></table></td>';
   
	if ( deviceSet ) {
		html += '<td style="border-left: 2px solid '+LineColor+'; border-right: 2px solid '+LineColor+'; border-top: 2px solid '+LineColor+'; border-bottom-width: 1px">&nbsp;'+selectDev;
		if( devices.length > 0 ) html += '&nbsp<font size="1"><b><a href="javascript:showDevTabs(3);">&#171; Back</a></b></font>';
		html += '</td>';
	}
	
	for ( var i = 0; i < devLength; i++ ) {
		
		devUrl = '';
		model = devices[i].split( '---' );

		devInfo = formatUrlPart( model[0] )+' '+formatUrlPart( model[1] );		
		var softCount = getNewSoft( model[0], model[1] );
		//if ( softCount != '' && softCount > 0 ) softCount = '<br><font color="#808080" size="1"><a href="'+host+langPart+'/software/'+model[0]+'/'+model[1]+'" onClick="javascript:onSort(1)">'+softCount+' new product(s)</a></font>';
		if ( softCount != '' && softCount > 0 ) softCount = '<br><font color="#808080" size="1">'+softCount+' new product(s)</font>';
		else softCount = '';
		
		if ( model != '' ) {
			if ( ( model[0] == model[i] ) && !deviceSet ) line = '<td style="border-left: 2px solid #A5A9D5; border-right: 2px solid #A5A9D5; border-top: 2px solid #A5A9D5; border-bottom-width: 1px">';
			else line = '<td style="border-left:1px solid #DADADA; border-bottom:2px solid #A5A9D5; border-right:1px solid #DADADA; border-top:1px solid #DADADA;" bgcolor="#F0F0F0">';
	
			line += '<p align="center">'+generateLink( devInfo, model[0], model[1], false, false )+softCount+'</font></td>';
			html += line;
		}
	}
	html += "</tr></table>";
	getObject( 'devDiv' ).innerHTML = html;
}

function setDevDiv() {
	document.write( '<div id="devDiv"></div>' );
}

function checkLanguage( language ) {
	var myLang = new Array( 'en', 'ru', 'lt', 'de' );
	for ( var i = 0; i <= myLang.length; i++ )
		if ( myLang[i] == language ) return myLang[i];
	return '';
}

function loadDevSelect() {
	showDevTabs( 0, AJAX_GET( host+'/php/dir_site.php?action=ajax_loadDevMan' ) )
}

function loadDevModel( devMan ) {
	if ( devMan == 'universal' ) return window.location.href = host+'/software/universal/all';
	getObject('devModelDiv').innerHTML = AJAX_GET( host+'/php/dir_site.php?action=ajax_loadDevModels&devMan='+devMan );
}

function generateLink( devTitle, devMan, devModel, ajaxEnabled, stayOnProduct ) {
	
	var onClick = '';
	var requestUri = window.location.href;
	var myUrl = requestUri.split( host );
	myUrl = myUrl[1];
	url = js_explodeURL( myUrl, 'dir/p1/p2/p3/p4/p5' );
	var myLang = checkLanguage( url['dir'] );

	if ( requestUri.match( '/software/' ) ) {
		if ( myLang != '' ) {
			manUrlPart = url['p2'];
			devUrlPart = url['p3'];
			catUrlPart = url['p4'];
			subCatUrlPart = url['p5'];
			link = host+'/'+myLang+'/'+url['p1']+'/';
		} else {
			manUrlPart = url['p1'];
			devUrlPart = url['p2'];
			catUrlPart = url['p3'];
			subCatUrlPart = url['p4'];
			link = host+'/'+url['dir']+'/';
		}
		if ( devMan != '' && devModel != '' ) link = link+devMan+'/'+devModel;
		if ( catUrlPart != '' && catUrlPart != 'Search' ) link = link+'/'+catUrlPart;
		if ( subCatUrlPart != '' && catUrlPart != 'Search' ) link = link+'/'+subCatUrlPart;

	}
	else if ( stayOnProduct && requestUri.match( 'products' ) ) {
		if ( myLang != '' ) {
			softID = url['p2'];
			softUrlPart = url['p3'];
			link = host+'/'+myLang+'/products/'+softID+"/"+softUrlPart;
		} else {
			softID = url['p1'];
			softUrlPart = url['p2'];
			link = host+'/products/'+softID+"/"+softUrlPart;
		}	
		onClick = " onClick='javascript:deviceSaveToCookie( \""+devMan+"\", \""+devModel+"\" );'";
	}
	else {
		if ( myLang != '' ) link = host+'/'+myLang+'/software/'+devMan+'/'+devModel;
		else link = host+'/software/'+devMan+'/'+devModel;
	}
	
	if ( ajaxEnabled ) return link;
	return '<a href="'+link+'"'+onClick+'>'+devTitle+'</a>';
	
}

function setDevice( devMan, devModel ) {
	var url = host+'/php/dir_site.php?action=ajax_setDevice&devMan='+devMan+'&devModel='+devModel;
	var result = AJAX_GET( url );
	var link = generateLink( '', devMan, devModel, true, true );
	window.location.href = link;		
}

function js_explodeURL( url, paramNames ) {
	var map = new Array();
	url = url.replace( "../", "" );
	var vals = url.split( '/' );
	paramNames = paramNames.split( '/' );
	var cnt = 0;
	for ( var i = 0; i <= paramNames.length; i++  ) {
		++cnt;
		if( vals[cnt] == null ) map[paramNames[i]] = '';
		else map[paramNames[i]] = vals[cnt];
	}
	return map;	
}

function setLastTime() {
	var accessTime = 60*60*6;
	var cookieName = 'last_visit_time';
	var currentTime = new Date();
	var ts = currentTime.getTime();
	ts = Math.round( ts / 1000 );
	var result = get_cookie( cookieName );
	if ( !result ) {
		set_cookie( cookieName, ts, ts + 60*60*24*350*10, '/' );
		return;
	}

	var interval = ts - result;
	if ( result && accessTime > interval ) return;
	setNewSoft( interval );
	set_cookie( cookieName, ts, ts + 60*60*24*350*10, '/' );
}

function setNewSoft( timeInterval ) {
	if ( !get_cookie( 'mydevices' ) ) return;
	AJAX_GET( host+'/php/dir_site.php?action=ajax_getNewSoft&timeInt='+timeInterval );
}

function getNewSoft( manUrlPart, modelUrlPart ) {
	var cookieName = 'mydevices_new_soft';
	var softList = get_cookie( cookieName );
	if ( !softList ) return '';
	var soft = new Array();
	soft = softList.split( '___' );
	for ( var i = 0; i < soft.length; i++ ) {
		if ( soft[i].match( manUrlPart+'---'+modelUrlPart ) ) {
			var data = soft[i].split( '---' );
			var softCount = data[2];
			return softCount;
		}
	}
	return '';
}

function getLastSelectedDevice() {
	var prefix = "GJMyDevices_v-1-___";
	if( !(result = get_cookie('mydevices')) || window.location.href.indexOf('universal/all') >= 0 ) return 'universal---all';
	result = result.substr( prefix.length, result.length - prefix.length );
	var lastDelimIndex = ( result.indexOf('___') >= 0 ? result.indexOf('___') : result.length );
	return result.substr( 0, lastDelimIndex );
}

function showDevTabs( tabCount, devManSelect ) {
	Show_myDevices( explode_devices( get_cookie( 'mydevices' ) ), tabCount, devManSelect );
}

setDevDiv();
setLastTime();
showDevTabs(3);