// DarkEye JScript File
// Developed by KoreLogic - http://www.korelogic.co.uk
window.onload = function()
{
    loadTriggers();
	//init();
}

var search_colours = new Array();

function loadTriggers()
{
//Palette
//    var x = document.getElementById('palatte_selector');
//    var y = x.getElementsByTagName('td');
//    var z = x.getElementsByTagName('div');
//    for (var i=0;i<z.length;i++){
//        if(window.addEventListener){ // Mozilla, Netscape, Firefox
//	        z[i].addEventListener('click', addColor, false);
//	        z[i].mydata = y[i].bgColor;
//        } else { // IE
//	        z[i].attachEvent('onclick', addColor);
//	        z[i].mydata = y[i].bgColor;
//        }
//    }
    
    var x = document.getElementById('colorPal');
    var y = x.getElementsByTagName('td');
    var z = x.getElementsByTagName('div');
    var hexColor = ""
    
    for (var i=0;i<z.length;i++){
        hexColor = z[i].style.backgroundColor;
        if (hexColor.indexOf('#') == -1){
            hexColor = validate_decimal_input(hexColor);
            hexColor = '#' + hexColor;
        }
    
        if(window.addEventListener){ // Mozilla, Netscape, Firefox
	        z[i].addEventListener('click', addColor, false);
	        z[i].mydata = hexColor;
        } else { // IE
	        z[i].attachEvent('onclick', addColor);
	        z[i].mydata = hexColor;
        }
    }
}

function loadAjax() {
  AjaxRequest.get(
    {
      'url':'latest.aspx'
      ,'onLoading':function() { document.getElementById('latest').innerHTML='<div class="loader"><p><img src=images/load.gif /><br/>Loading...</p></div>'; Effect.Appear('latest') }
      ,'onSuccess':function(req){document.getElementById('latest').innerHTML=req.responseText; Effect.BlindDown('latest');}
    }
  );
}

function addColor(evt){

    // "target" for Mozilla, Netscape, Firefox et al. ; "srcElement" for IE
    var e_out;
	var ie_var = "srcElement";
	var moz_var = "target";
	var prop_var = "id";
	evt[moz_var] ? e_out = evt[moz_var][prop_var] : e_out = evt[ie_var][prop_var];
	prop_var = "mydata";
	evt[moz_var] ? e_out = evt[moz_var][prop_var] : e_out = evt[ie_var][prop_var];
	var hexColor = e_out;
    if (search_colours.length < 6){
        var col = (search_colours.push(hexColor) - 1)
        var y = document.getElementById('submitCol' + col);
        var x = document.getElementById('color_' + col);
        Effect.Pulsate(x);
        x.style.background = hexColor;
        y.value = hexColor.replace("#", "");;
    }
}

function removeColor(colId){
    search_colours.splice(colId, 1);
    draw();
}

function draw(){
    for (i = 0; i <= search_colours.length; i++){
        var x = document.getElementById('color_' + i);
        var y = document.getElementById('submitCol' + i);
        x.style.background = "url(images/noselect.gif) no-repeat center center;";
        x.style.background = search_colours[i];
        y.value = search_colours[i].replace("#", "");
    }
}

function submitForm(theform) {
    var status = AjaxRequest.submit(
        theform
        ,{
            'onSuccess':function(req){errorCheck(req.responseText);}
        }
    );
    return status;
}

var addUrl = "";

function errorCheck(state) {
    if(state == "OK"){
        element = document.getElementById('container-home');
	    Effect.BlindUp(element);
	    element = document.getElementById('container-submit');
	    Effect.Appear(element);
	    
	    addUrl = document.getElementById('UrlInput').value;
	    countdown();
    }else{
        document.getElementById('errorTag').innerHTML=state;
        Effect.Pulsate(document.getElementById('errorTag'));
    }
}

var count = 20;
    function countdown(){
    
    count--;
    document.getElementById('container-submit').innerHTML='<div class="loader"><p><span style="font-size: 120%; color:#EB8921; font-weight: bold;">'+ count + '</span><br/>Please Wait</p></div>';
    Effect.Appear(document.getElementById('container-submit'));
    
    if (count>0){
        id = window.setTimeout("countdown();",1000);
    }else{
          AjaxRequest.get(
            {
            'url':'details.aspx?url=' + addUrl
            ,'onLoading':function() {document.getElementById('container-submit').innerHTML='<div class="loader"><p><img src=images/load.gif /><br/>Loading...</p></div>'; Effect.Appear('container-results');}
            ,'onSuccess':function(req){document.getElementById('container-submit').innerHTML=req.responseText; Effect.BlindDown('container-results');}
            ,'timeout':2000
            ,'onTimeout':function(req){document.getElementById('container-submit').innerHTML='<div class="loader"><p><img src=images/error.gif /><br/>Error: Server Busy...</p></div>'; Effect.Appear('container-results'); }
            }
  );
    }
}


	function validate_decimal_input ( inpstr )
	{
		var hexstr = "";

		inpstr = strip_to_number ( inpstr );
		if ( inpstr.length )
			var red = parseInt ( inpstr, 10 );
		else
			return ( hexstr );
		
		inpstr = strip_number ( inpstr );
		inpstr = strip_to_number ( inpstr );
		if ( inpstr.length )
			var grn = parseInt ( inpstr, 10 );
		else
			return ( hexstr );

		inpstr = strip_number ( inpstr );
		inpstr = strip_to_number ( inpstr );
		if ( inpstr.length )
			var blu = parseInt ( inpstr, 10 );
		else
			return ( hexstr );

		if ( red < 0 || red > 255)
			return ( hexstr );
		else if ( grn < 0 || grn > 255)
			return ( hexstr );
		else if ( blu < 0 || blu > 255)
			return ( hexstr );

		hexstr = convert_to_hex ( red );
		hexstr += convert_to_hex ( grn );
		hexstr += convert_to_hex ( blu );

		return ( hexstr );
	}


	function strip_to_number ( inpstr )
	{
		for (var pos=0; pos<inpstr.length; pos++)
			{
			var ch = inpstr.charAt ( pos );

			if ( ch >= '0' && ch <= '9' )
				break;
			}

		inpstr = inpstr.substring ( pos, inpstr.length );

		return ( inpstr );
	}


	function strip_number ( inpstr )
	{
		for (var pos=0; pos<inpstr.length; pos++)
			{
			var ch = inpstr.charAt ( pos );

			if ( ch < '0' || ch > '9' )
				break;
			}

		inpstr = inpstr.substring ( pos, inpstr.length );

		return ( inpstr );
	}


	function convert_to_hex ( num ) {

		var digit = new Array ( "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" );

		var n1 = Math.floor ( num / 16 );
		var n2 = num - n1 * 16;
		
		var retstr = digit[ n1 ];
		retstr += digit[ n2 ];

		return ( retstr );
	}
