var chkIntervalXML=true;
var startToGetResult=0;
var countArrayURL=0;
var objXML=null;
var IDintervalQuery=null;
var chkOperationComplete=false;
var chkOperationFinalComplete=false;
var totalTimeUsed=0;
var codice_cliente_temp=null;
var array_URL=null;
var randomNumber=0;

var totURLpage=0;
var fineLetturaPerQuellaKeyword=false;
var countRielaborazioni=0;

var arrayComponent=["MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","MICROSOFT.XMLHTTP.1.0","MICROSOFT.XMLHTTP.1","MICROSOFT.XMLHTTP"];
function selectObj() {
	var varObjNew=null;
	for(var cc=0;cc<arrayComponent.length;cc++){
		try {
			varObjNew=new ActiveXObject(arrayComponent[cc]);
			break;
		}catch(c){
			varObjNew=null;
		}
	}
	if(typeof XMLHttpRequest!="undefined" || !varObjNew){
		try{
			varObjNew=new XMLHttpRequest();
		}catch(e){
			alert("Impossibile create una connessione HTTP! Nessun componente XML installato! ("+e.message+")");
		}
	}
	return varObjNew;
}

function createRandomNumber() {
	var date_random=(new Date()).getTime();
	var temp_random=Math.floor(Math.random()*parseInt(date_random));
	return temp_random;
}

function openXML(url,obj,typeResponse,typeSend,postValue) {
//	addTextInfo(url);
	if(typeof obj=="object" && obj.readyState!=0){obj.abort();}
	if(typeof typeSend=="undefined" || typeSend.length<=0){typeSend='GET';}
	if(typeof postValue=="undefined" || postValue.length<=0){postValue=null;}else{postValue=encodeURIComponent(postValue);}
	typeSend=typeSend.toUpperCase();
	obj.open(typeSend,url,true);
	timeLoadingtemp=(new Date()).getTime();
	if(typeSend=='POST'){obj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");}
	obj.setRequestHeader("Cache-Control","no-cache");obj.setRequestHeader("Pragma","no-cache");obj.setRequestHeader("Cache-Control","no-store");
	obj.setRequestHeader("Expires","Wed, 31 Dec 1980 00:00:00 GMT");
	var paginaActualTemp=0;paginaActualTemp=(startToGetResult / 10) + 1;
	obj.onreadystatechange=function(){
		rv=obj.readyState;
		if(rv==1){
			var tempCount=countArrayURL+1;
			addTextInfo("Elaborazione in corso dell&acute;URL n."+tempCount+"...");
		}
		if(rv==4){
			if (obj.status==200){
				countRielaborazioni=0;
				var txtR='txt';if(typeResponse=="xml"){txtR=obj.responseXML}else{txtR=obj.responseText};
				timeLoading=((new Date()).getTime())-timeLoadingtemp;timeLoading=timeLoading/1000;
				totalTimeUsed+=parseFloat(timeLoading);
				if(txtR.replace(' ','')=="GoogleKeyError"){
					addTextInfo("Google Key non Trovata ! Errore Interno ...");
					chkIntervalXML=false;//NEGO PER IL MOMENTO DI ELABORARE I RISULTATI DELLE PAGINE DELLE KEYWORDS
					window.clearInterval(IDintervalQuery);
					if(typeof objXML=="object" && objXML.readyState!=0){objXML.abort();objXML=null;}
					alert("Google Key non Trovata ! Errore Interno ...");
				} else {
					addTextInfo("URL "+paginaActualTemp+" elaborato correttamente in "+timeLoading+" sec.");
					addTextInfo("In attesa dell&acute;URL successivo !");
				}
			}else{
				if(countRielaborazioni<=3){
					addTextInfo("Si è verificato un errore. N."+obj.status+" - "+obj.statusText +"");
					addTextInfo("Errore on: "+url +"");
					startToGetResult-=10;
					fineLetturaPerQuellaKeyword=false;
					countRielaborazioni+=1;
					addTextInfo("Rielaborazione della pagina "+paginaActualTemp+" in corso...");
				}else{}
			}
			chkIntervalXML=true;
			if(fineLetturaPerQuellaKeyword==true){
				countArrayURL+=1;//PASSO ALLA KEY SUCCESSIVA DA ANALIZZARE
				startToGetResult=0;//AZZERO ALLA PRIMA PAGINA DA DOVE LEGGERE I RISULTATI EPR LA NUOVA KEY
				//CONTROLLO SE LE KEYWORD SONO FINETE O NO
				if(countArrayURL<totURLpage){
					//CI SONO ALTRE KEYWORD DA LEGGERE
				} else {
					//KEYWORDS FINITE
					chkIntervalXML=false;//NEGO PER IL MOMENTO DI ELABORARE I RISULTATI DELLE PAGINE DELLE KEYWORDS
					window.clearInterval(IDintervalQuery);
					addTextInfo("Elaborazione Completata !...");
//					document.formEsecuzione.sessionID.value=randomNumber;
//					document.formEsecuzione.salva.style.visibility="visible";//VISUALIZZO IL PULSANTE DI SALVATAGGIO DEI DATI
					changeStateForm(false);//RIPRISTINO il form di ricerca
					//CANCELLO gli oggetti XMLHTTP
					if(typeof obj=="object" && obj.readyState!=0){obj.abort();obj=null;}
					window.top.location.href="basic/showResult.asp?idS="+randomNumber;
				}
			}else{}
		}
	};
	if(typeSend=='POST'){obj.send(postValue);}else{obj.send(null);}
}

function getDataFromASP() {
	if(chkIntervalXML==true) {
		chkIntervalXML=false;
		if(startToGetResult==0){
			addTextInfo("Elaborazione dell&acute;URL: "+array_URL[countArrayURL]);
		}
//		alert("http://www.igloosoft.net/siteanalysis/basic/getData.asp?idSessione="+randomNumber+"&country="+countryCheck+"&q="+array_URL[countArrayURL]+"&s="+startToGetResult+"&k=&ky=");
		openXML("http://www.urlanalysis.info/basic/getData.asp?idSessione="+randomNumber+"&country="+countryCheck+"&q="+array_URL[countArrayURL]+"&s="+startToGetResult+"&k=&ky=", objXML, "txt", "GET");
		
		startToGetResult+=10;
		var resultActualXX = parseInt(1)*10;
		
		if(startToGetResult<resultActualXX) {
			fineLetturaPerQuellaKeyword=false;
		} else {
			fineLetturaPerQuellaKeyword=true;
		}
	}
}

function readAPI() {
	totURLpage=parseInt(document.formEsecuzione.codKey_ok.length);
	if(totURLpage<=0) {
		alert("Insert an URL...");
		return false;
	}
	array_URL=new Array();

	randomNumber=createRandomNumber();
	
	for(var ppcc=0; ppcc<=totURLpage-1; ppcc++) {
		array_temp2=document.formEsecuzione.codKey_ok.options[ppcc].value.toString();
		array_URL[ppcc]=array_temp2;
	}
	
	addTextInfo("URL selezionati: "+totURLpage+".");
	
	if(totURLpage>0) {
		countryCheck=document.formEsecuzione.countryCheck.options[document.formEsecuzione.countryCheck.selectedIndex].value;
		if (!countryCheck) { countryCheck=""; }
		changeStateForm(true);
		chkIntervalXML=true;
		countArrayURL=0;
		objXML=selectObj();
		IDintervalQuery=window.setInterval("getDataFromASP()", 18000);
		addTextInfo("Inizio Elaborazione Risultati tra 15 sec.");
	} else {
		addTextInfo("Inserire almeno 1 URL ...");
	}
}

function changeStateForm(boolValue) {
	document.formEsecuzione.codKey.disabled=boolValue;
	document.formEsecuzione.codKey_ok.disabled=boolValue;
	document.formEsecuzione.button.disabled=boolValue;
	document.formEsecuzione.countryCheck.disabled=boolValue;
	document.formEsecuzione.addKeyToList.disabled=boolValue;
	document.formEsecuzione.removeKeyToList.disabled=boolValue;
	if(boolValue==true){
		
	} else {
		//RIASSEGNAZIONE VARIABILI
		countryCheck=false;
		chkIntervalXML=true;
		startToGetResult=0;
		countArrayURL=0;
		objXML=null;
		IDintervalQuery=null;
		chkOperationComplete=false;
		chkOperationFinalComplete=false;
		totalTimeUsed=0;
		codice_cliente_temp=null;
		array_URL=null;
		cusomerSuccessivo=false;
		totURLpage=0;
		fineLetturaPerQuellaKeyword=false;
		countRielaborazioni=0;
//		randomNumber=createRandomNumber();
	}
}

function Left(str, n) {	if (n <= 0) { return ""; } else if (n > String(str).length) { return str; } else { return String(str).substring(0,n); } }

function addToCombo() {
	var chp=false;
	var actualToAddIntoCombo=parseInt(document.formEsecuzione.codKey.value.length);
	if(actualToAddIntoCombo>0) {
		if (Left(document.formEsecuzione.codKey.value, 7) == "http://" || Left(document.formEsecuzione.codKey.value, 8) == "https://") {
			if (parseInt(document.formEsecuzione.codKey_ok.length)<3) {
				document.formEsecuzione.codKey_ok.options[document.formEsecuzione.codKey_ok.length]=new Option(document.formEsecuzione.codKey.value,document.formEsecuzione.codKey.value);
				document.formEsecuzione.codKey.value="";
				document.formEsecuzione.codKey.focus();
			} else {
				alert("Max. 3 URL to analyze to try !");
			}
		} else {
			alert("Need the prefix http:// or https:// before the URL !");
		}
	} else {
		alert("Insert an URL to add to the list !");
	}
}

function removeFromCombo(strValue) {
	var actualToAddIntoCombo=parseInt(document.formEsecuzione.codKey_ok.length);
	for(var ppc=actualToAddIntoCombo-1; ppc>=0; ppc--) {
		if(document.formEsecuzione.codKey_ok.options[ppc].value==strValue) {
			document.formEsecuzione.codKey_ok.options[ppc]=null;
		}
	}
}

function addTextInfo(strValue){createDiv100(strValue);}