
var waitTime;
var decTime = 50;
var started = false;
var popped=false;
var lastDomChecked = '';
var fld;
var rawWords;

    function setTime(e,field)
    {
    	fld = field;
    	var oEvent = window.event ? window.event : e;
    	var keyId = oEvent.keyCode;
    	//alert(keyId);
    	if (keyId in {9:'',16:'',17:'',18:'',19:'',35:'',36:'',37:'',38:'',39:'',40:'',45:''}) {/* alt:tab?,  shift,ctrl,alt,pause? spacebar,end,home,arrows, insert,del*/ }
    	else {  waitTime=900;  popped=false;  if (started==false) { started=true; setTimeout(areWeReady, (decTime)); }  }
    }

    function cleanDomain()
    {
    	fqdn = fld; //document.getElementById('fqdn');
    	fqdn.value = fqdn.value.replace(/[^a-zA-Z0-9-\ ]/g, "").toLowerCase();
    	while (fqdn.value.substr(0,1)=="-") { fqdn.value = fqdn.value.substr(1); }
    	while (fqdn.value.substr(fqdn.value.length-1,1)=="-") { fqdn.value= fqdn.value.substr(0,fqdn.value.length-1); }
    	while (fqdn.value.substr(fqdn.value.length-1,1)==" ") { fqdn.value= fqdn.value.substr(0,fqdn.value.length-1); }
    	newFqdn = fqdn.value;
    }

    function showMe(state) { if (state==true) document.getElementById('time').innerText = waitTime+ " - " + decTime + " - " + popped + " - " + started + " >> "; }
    function areWeReady() {	if (waitTime <= 0){ getData(); } else { waitTime -= decTime; setTimeout(areWeReady, (decTime)); }  }
    function getData() { if (popped==false) { popped=true; started=false; cleanDomain(); getAjax(); } }

    function checkIfSame(domtocheck) { if (domtocheck == lastDomChecked) { return true; } else { lastDomChecked=domtocheck; return false; } }

    function getAjax()
    {
    	userDom = newFqdn.replace(/[^a-zA-Z0-9- ]/g, "");
    	if (userDom=='' ) return;
	clearResults();
	rawWords = new Array();
    	//wordChecked = checkPlainWord(userDom);
    	baseWord = fixBaseWord(userDom);
    	addPair(baseWord, '');
    	makeOutput();
    	
    	if (fld.id != 'quickkey') 
    	{
    		//new Ajax.Request('./gs.php', { method: 'get',  parameters: 't='+encodeURIComponent(newFqdn),  onComplete: Gsug }); 
    		//new Ajax.Request('./azs.php', { method: 'get',  parameters: 't='+encodeURIComponent(newFqdn),  onComplete: Azsug }); 
    		updateSuggestSource(userDom);
    	}
    }

    function updateSuggestSource(term)
    {
    	cleanTerm = escape(term);
    	//alert(cleanTerm);
        	olddiv = document.getElementById('gs');
        	head.removeChild(olddiv);
        	olddiv = document.getElementById('as');
        	head.removeChild(olddiv);
        	
		var newScript = document.createElement('script');
		newScript.type = 'text/javascript';
		newScript.id = 'gs';
		newScript.src = 'http://www.google.com/complete/search?hl=en&qu='+cleanTerm;
		head.appendChild(newScript);
		
		var newScript = document.createElement('script');
		newScript.type = 'text/javascript';
		newScript.id = 'as';
		newScript.src = 'http://completion.amazon.com/search/complete?method=completion&q='+cleanTerm+'&search-alias=aps&client=amazon-search-ui&mkt=1&x=azComplete';
		head.appendChild(newScript);    
    }
    
    	var head = document.getElementsByTagName("head")[0];
    	window.google={kEI:"pLaRSbr0MZa6sgPXksWxCw",kEXPI:"19634",kHL:"en"};
	window.google.ac={};
	google.ac.h=function(data){Gsug1(data[1])};
	function azComplete(){ Azsug1(completion[1]); } 

    function Gsug1(gwordlist)
    {
    	if (gwordlist.length > 0)
    	{
    		gwordlist.each(function(word,windex)
    		{
    			//alert(word[0] + ' ... ' + word[1]);
    			baseWord = fixBaseWord(word[0]);
    			alt_title = "Search term in new Google window";
    			sugBaseLink = 'GOOGLE: <a href="http://www.google.com/search?q='+baseWord.replace(/ /g,'+')+'" alt="'+alt_title+'" title="'+alt_title+'" target="_blank">'+baseWord+'</a>'+' &nbsp;...&nbsp; '+word[1];
    			baseWord = baseWord.replace(/[^a-zA-Z0-9- ]/g,'');
    			addPair(baseWord, sugBaseLink);
    		});
    	} else addDomain('GOOGLE ... no suggestions');
    	makeOutput();
    }
    
    function Azsug1(awordlist)
    {
    	if (awordlist.length > 0)
    	{
    		awordlist.each(function(word,windex)
    		{
    			baseWord = fixBaseWord(word);
    			alt_title = "Search term in new Amazon window";
    			sugBaseLink = 'AMAZON: <a href="http://www.amazon.com/s/ref=nb_ss_gw_0_4?url=search-alias%3Daps&field-keywords='+baseWord.replace(/ /g,'+')+'&tag=employeentrep-20" alt="'+alt_title+'" title="'+alt_title+'" target="_blank">'+baseWord+'</a> ...';
    			baseWord = baseWord.replace(/[^a-zA-Z0-9- ]/g,'');
    			addPair(baseWord, sugBaseLink);
    		});
    	} else addDomain('AMAZON ... no suggestions');
    	makeOutput();
    }
    
    function x_Gsug(transport)
    {
    	if (transport.responseText != '')
    	{
    		//addDomain('RESULTS FROM GOOGLE ... RESULTS FROM GOOGLE -------- ... --------');
    		wordlist = transport.responseText.split("|");
    		wordlist.each(function(word,windex)
    		{
    			sugParts = word.split(":");
    			
    			//exists = checkPlainWord(sugParts[0]);
    			baseWord = fixBaseWord(sugParts[0]);
    			sugBaseLink = 'GOOGLE: <a href="http://www.google.com/search?q='+baseWord.replace(/ /g,'+')+'" target="_blank">'+baseWord+'</a>'+' &nbsp;...&nbsp; '+sugParts[1];
    			//addDomain(sugBaseLink+' &nbsp;...&nbsp; '+sugParts[1]);
    			baseWord = baseWord.replace(/[^a-zA-Z0-9- ]/g,'');
    			addPair(baseWord, sugBaseLink);
    		});  
    	} else addDomain('GOOGLE ... no suggestions');
    	if (wordlist) { $('sugrtn').innerHTML = wordlist.join("<br />").replace(/:/g,' ... '); }
    	else $('sugrtn').innerHTML = '';
    	makeOutput();
    }
    
    function x_Azsug(transport)
    {
    	if (transport.responseText != '')
    	{
    		//addDomain('RESULTS FROM AMAZON ... RESULTS FROM AMAZON ---------- ... --------');
    		wordlist = transport.responseText.split("|");
    		wordlist.each(function(word,windex)
    		{
    			//exists = checkPlainWord(word);
    			baseWord = fixBaseWord(word);
    			sugBaseLink = 'AMAZON: <a href="http://www.amazon.com/s/ref=nb_ss_gw_0_4?url=search-alias%3Daps&field-keywords='+baseWord.replace(/ /g,'+')+'" target="_blank">'+baseWord+'</a> ...';
    			//if (exists) sugBaseLink += ' Result already above';
    			//addDomain(sugBaseLink);
    			baseWord = baseWord.replace(/[^a-zA-Z0-9- ]/g,'');
    			addPair(baseWord, sugBaseLink);
    		});  
    	} else addDomain('AMAZON ... no suggestions');
    	//if (wordlist) { $('sugrtn').innerHTML = wordlist.join("<br />").replace(/:/g,' ... '); }
    	//else $('sugrtn').innerHTML = '';
    	makeOutput();
    }
    
    function addPair(baseWord, baseLink)
    {
    	//alert(baseWord);
    	//alert(baseLink);
    	_addDom = new Array();
    	dom1 = baseWord.replace(/ /g, '');
    	dom2 = baseWord.replace(/ /g, '-');
    	if (!checkPlainWord(dom1)) _addDom.push(dom1);
    	if (dom1!=dom2 && !checkPlainWord(dom2)) _addDom.push(dom2);
    	if (_addDom.length > 0)
    	{
    		if (baseLink != '') { addDomain(baseLink); }
    		_addDom.each(function(addDomWord,adwindex) {addDomain(addDomWord);} );	
    	}
    	else if (baseLink != '') { addDomain(baseLink+' Result already above'); }
    }
    /* * create lowercase word with no spaces; * check if exists in rawWords Array; * add if it does not */
    function checkPlainWord(orawWord) 
    {
    	rawWord = orawWord.toLowerCase().replace(/[^a-zA-Z0-9-]/g,'');
    	if (rawWords.indexOf(rawWord)==-1) { rawWords.push(rawWord); return false;}
    	else return true;
    }
    
    function fixBaseWord(baseWord) // fix apostrophes returned from suggest
    {
    	baseWord = baseWord.replace(/'/g,'');
    	baseWord = baseWord.replace(/\\x27/g,'\'');
    	baseWordParts = baseWord.split(' ');
    	UCBaseWordParts = new Array();
    	baseWordParts.each(function(bw,bwindex)
    	{
    			UCBaseWordParts[bwindex] = bw.substring(0,1).toUpperCase()+bw.substring(1);
    	});
    	return UCBaseWordParts.join(' ');
    }
