﻿/*==========================================================================================
 Project              : Aegis
 File Name            : Home.js
 Program Description  : Javascript File to cater Aegis Home Page Functions
 Programmed By        : Kumar Rakesh
 Programmed On        : 27/02/2009 
 Modification History : 
 ==========================================================================================*/

var DefaultAdminWeights = "";
var oXmlLoadCatWeights = null;
function GetCatWeights()
{   
    document.getElementById('radSolo').disabled = false;  
    document.getElementById('radMix').disabled = true; 
    CatRadioSettings(0);    
    oXmlLoadCatWeights=GetXmlHttpObject();
    if(oXmlLoadCatWeights != null)
    {
        var url = "AjaxHomeCatWeights.aspx?rand="+Math.floor(Math.random()*100001);
        oXmlLoadCatWeights.open("GET", url, true);
        oXmlLoadCatWeights.onreadystatechange=function(){cbGetCatWeights();}
        oXmlLoadCatWeights.send(null);
     
    }         
}

var cbGetCatWeights = function()
{
    if(oXmlLoadCatWeights.readyState==4)
    {
        if(oXmlLoadCatWeights.status==200)
        {
            var sResponse = oXmlLoadCatWeights.responseText;
            oXmlLoadCatWeights = null;
            
            if(sResponse == "SE")
            {
                alert('Session Expired!');
            }
            else if(sResponse == "E")
            {
                alert('Sorry!! An Error Occured while connecting to server. Please try again after some time');
            }
            else{
               var arrCatNameWeights = sResponse.split('^');
               var CatName = arrCatNameWeights[0].split(',');
               
               //setting Category Name
               for(var i=0;i<CatName.length;i++)
               {
                    document.getElementById('spanCat'+(i+1)).innerHTML = CatName[i];
               }          
             
               
               var ArrAdminWts = arrCatNameWeights[1].split(",");
               var AdminWtsTemp = "";
               for(var i=0;i<ArrAdminWts.length;i++)
               {
                   AdminWtsTemp = AdminWtsTemp + RoundOffSliderValues(ArrAdminWts[i]) + ",";
               }
               DefaultAdminWeights = AdminWtsTemp.substring(0,AdminWtsTemp.length-1);
               //SetInitialSliderPos(DefaultAdminWeights);
            }
            
        }else{
            oXmlLoadCatWeights = null;
            alert("Sorry, Server didn't responded properly, Please try again");
        }
    }
}

/*For Cross Browser Compatibility*/
var SetCrossBrowserSettings = function()
{
   
    if(browser == "IE" && IEversion == 6)
    {
        //for IE 6
        document.getElementById('idLeftPane').style.paddingLeft = "2px";
        document.getElementById('idLeftPane').style.paddingRight = "2px";
        for(var i=1;i<=6;i++)
        {
            //document.getElementById('divSpacer'+i).style.height = "0px";
        }
    }
    else if (browser == 'IE' && IEversion > 6)
    {
        //Above IE 6
        document.getElementById('idLeftPane').style.paddingLeft = "5px";
        document.getElementById('idLeftPane').style.paddingRight = "5px";
         for(var i=1;i<=6;i++)
        {
            //document.getElementById('divSpacer'+i).style.height = "4px";
        }
    }
    else
    {
        //Mozilla
        document.getElementById('idLeftPane').style.paddingLeft = "5px";
        document.getElementById('idLeftPane').style.paddingRight = "5px";
         for(var i=1;i<=6;i++)
        {
            //document.getElementById('divSpacer'+i).style.height = "4px";
        }
    }
}


/****************Dragger*******************************************************************/
function onEndCrop( coords, dimensions ) {
}

var startPosX = 0;
var StartPosY = 0;

var DrawImg = function(x,y)
{
    var xRatio = 3309/233;
    var yRatio = 1469/104;			
    startPosX = (xRatio) * x;			
    StartPosY = (yRatio) * y;			
    
    document.getElementById("bgCSS").style.backgroundPosition = "-"+startPosX+"px -"+StartPosY+"px";  
    document.getElementById("bgCSS").style.backgroundRepeat = 'no-repeat';
    //document.getElementById("bgCSS").style.height = "514px";
    //document.getElementById("bgCSS").style.width = "739px";	
}




var initiateMap = function()
{
    Event.observe( 
    window, 
    'load', 
    function() { 
        new Cropper.ImgWithPreview( 
	        'imgThumbnail',
    		
	        { 
		        minWidth: 52, 
		        minHeight: 36,
		        maxWidth: 52, 
		        maxHeight: 36,
		        ratioDim: { x: 1, y: 1 },
		        displayOnInit: true, 
		        onEndCrop: onEndCrop,
		        previewWrap: 'previewArea'
    			
	        }
    		
        ) 
    } 
    );
}	
/**********************************Dragger******************************************************/

/*Slider Functionality*/

var MinVal = 0;
var MaxVal = 5;
var SliderWidth = 205;  //-6 :: 3px each from left + right
var draggerWidth = 20;
var MainWidth = 185;  //distance from start to last coordinate 03+176 
//SmallUnit 185/5 = 37
var smallUnit = MainWidth/MaxVal;

var ie=document.all;
var nn6=document.getElementById&&!document.all;

var isdrag=false;
var x,y,p;
var dobj;

function movemouse(e)
{
    if (isdrag)
    {
        p=nn6 ? tx + e.clientX - x : tx + event.clientX - x;
            
        if((MinVal < p) && (MainWidth > p))
        dobj.style.left = (nn6 ? tx + e.clientX - x : tx + event.clientX - x) + 'px';
        
        
        
        // dobj.style.top = nn6 ? ty + e.clientY - y : ty + event.clientY - y;
        if(p>MainWidth)
	        p=MainWidth;
        if (p<0)
	        p=0;
        	
	        ProductX = findPosX(document.getElementById('app' + dobj.id));	
	        document.getElementById('app' + dobj.id).style.width = p + 'px';

        return false;
    }
}

function selectmouse(e)
{
var fobj = nn6 ? e.target : event.srcElement;
var topelement = nn6 ? "HTML" : "BODY";
while (fobj != null && fobj.tagName != topelement && fobj.className != "dragme")
{
fobj = nn6 ? fobj.parentNode : fobj.parentElement;
}

if(fobj != null)
{
    if (fobj.className=="dragme")
    {
    isdrag = true;
    dobj = fobj;
    tx = parseInt(dobj.style.left+0);
    ty = parseInt(dobj.style.top+0);
    x = nn6 ? e.clientX : event.clientX;
    y = nn6 ? e.clientY : event.clientY;

    window.document.onmousemove=movemouse;
    return false;
    }
}else{
    return false;
}

}

function doStuff(e)
{
	if(isdrag)
	{		
		if ((p >=MinVal) && (p< ((3 * smallUnit)/2)))
			p = MinVal;
		else if((p >= ((3 * smallUnit)/2)) && (p < (3 * smallUnit)))
			p = 3 * smallUnit;
		else if((p >=(3 * smallUnit)) && (p < (4 * smallUnit)))
			p = 3 * smallUnit;
		else if((p >=(4 * smallUnit)) && (p<MainWidth))
			p = MainWidth;
		else if(p >=MainWidth)
		    p=MainWidth;
		else
			p = MainWidth;
		dobj.style.left = p + 'px';
		ProductX = findPosX(document.getElementById('app' + dobj.id));
		document.getElementById('app' + dobj.id).style.width = p + 'px';
		document.getElementById('hdn' + dobj.id).value = Math.round(p/smallUnit);
		
		//Changing the Image
		var ImageUrl = "";		
        for(var i =1;i<=6;i++)
        {
            ImageUrl += document.getElementById('hdninnerdiv' + i).value + "_";
        }
			
        ImageUrl = ImageUrl.substring(0,ImageUrl.length-1);
        ImageUrl = 'url(Maps/Map^' + ImageUrl + '.jpg) no-repeat';
        //alert(ImageUrl);
        //Load Image with Initial Weights
        //alert(ImageUrl);
        
        document.getElementById('bgCSS').style.background  = ImageUrl;
        document.getElementById("bgCSS").style.backgroundPosition = "-"+startPosX+"px -"+StartPosY+"px";		
		isdrag = false;
	}
}


function setInitials()
{
    for(i=1;i<=6;i++)
	{
		ProductX = findPosX(document.getElementById('div'+i));
		ProductY = findPosY(document.getElementById('div'+i));		
	    if(browser == "IE" && IEversion == 6){
		    document.getElementById('appinnerdiv'+i).style.left = (ProductX + 2)+ 'px';
		    document.getElementById('appinnerdiv'+i).style.top = (ProductY+5)+ 'px';
		}else if (browser == 'IE' && IEversion > 6){
		    document.getElementById('appinnerdiv'+i).style.left = (ProductX + 2)+ 'px';
		    document.getElementById('appinnerdiv'+i).style.top = (ProductY+5)+ 'px';
		}else{
		    document.getElementById('appinnerdiv'+i).style.left = (ProductX)+ 'px';
		    document.getElementById('appinnerdiv'+i).style.top = (ProductY + 3)+ 'px';
		}
	}
}


function SetInitialSliderPos(sWeight)
{
    //var sWeight =  "0,0,3,5,5,0";
    var SliderWeights = sWeight.split(",");
	var SliderPos = 0;
	var SliderWidth = 0;
	
	var ImageUrl = '';
	for(var i=0;i<SliderWeights.length;i++)
	{
	 
	    //Setting the Sliders Pos
	    SliderPos = SliderWeights[i];
	    ImageUrl += SliderPos + '_';
	    SliderWidth = smallUnit * SliderPos;
	    if(SliderWidth > MainWidth)
	        SliderWidth = MainWidth;
	    document.getElementById('innerdiv'+(i+1)).style.left = SliderWidth + 'px';
        document.getElementById('appinnerdiv' + (i+1)).style.width = SliderWidth + 'px';
		document.getElementById('hdninnerdiv' + (i+1)).value = SliderPos;
	}
	
	ImageUrl = ImageUrl.substring(0,ImageUrl.length-1);
	ImageUrl = 'url(Maps/Map^' + ImageUrl + '.jpg) no-repeat';
	//alert(ImageUrl);
	//Load Image with Initial Weights
	document.getElementById('bgCSS').style.background  = ImageUrl;
	document.getElementById("bgCSS").style.backgroundPosition = "-"+startPosX+"px -"+StartPosY+"px";  
	
	 
}


function RoundOffSliderValues(value)
{
    if(value < 1.5)
        value = 0;
    else if((value >= 1.5) && (value < 4))
        value = 3;
    else 
        value = 5;
     return value;
}




var ChangeMapImage = function()
{
    var hdnSelectedCat = document.getElementById('hdnSelCat').value;
    for(var i =1;i<=6;i++)
    {
        if(i == hdnSelectedCat)
        {
           document.getElementById('innerdiv'+i).style.left = MainWidth + 'px';
           document.getElementById('appinnerdiv' + i).style.width = MainWidth + 'px';
           document.getElementById('hdninnerdiv' + i).value = Math.round(MainWidth/smallUnit);
        }
        else
        {
           document.getElementById('innerdiv'+i).style.left = MinVal + 'px';
           document.getElementById('appinnerdiv' + i).style.width = MinVal + 'px';
           document.getElementById('hdninnerdiv' + i).value = Math.round(MinVal/smallUnit);
        }
    }
    //Load Image
    var ImageUrl = "";		
    for(var i =1;i<=6;i++)
    {
        ImageUrl += document.getElementById('hdninnerdiv' + i).value + "_";
    }
    ImageUrl = ImageUrl.substring(0,ImageUrl.length-1);
    ImageUrl = 'url(Maps/Map^' + ImageUrl + '.jpg) no-repeat';

    //Load Image with Initial Weights
   
    document.getElementById('bgCSS').style.background  = ImageUrl;
     //alert(document.getElementById('bgCSS').style.background);
    document.getElementById("bgCSS").style.backgroundPosition = "-"+startPosX+"px -"+StartPosY+"px"; 
}



var functSetHiddenCat = function(obj)
{
    document.getElementById('hdnSelCat').value = obj.value;
    for (i = 1; i <= 6; i++)
    {
        document.getElementById('grpCategory' + i).disabled = false;      
    }
    obj.disabled = true;       
    ChangeMapImage();

}


var functSoloMode = function()
{
    
   //Clicked on Solo 
   document.getElementById('radMix').disabled = false;  
   document.getElementById('radSolo').disabled = true;
   //Enabled all radio buttons
   CatRadioSettings(1);    
   
   
   //Move the Transparent mask from radio buttons so that Use can click them
   ProductX = findPosX(document.getElementById('divCat'));
   ProductY = findPosY(document.getElementById('divCat'));
   document.getElementById('divMask').style.left = (ProductX + 24) + 'px';
   document.getElementById('divMask').style.top = (ProductY)+ 'px';
   document.getElementById('divMask').style.display = 'block';
   
   SetInitialSliderPos('5,0,0,0,0,0');
   document.getElementById('grpCategory1').checked = true;
   document.getElementById('grpCategory1').disabled = true;
}

var functMixMode = function()
{

   //Click on Mix Mode 
   document.getElementById('radSolo').disabled = false;  
   document.getElementById('radMix').disabled = true; 
   document.getElementById('divMask').style.display = 'none';
   
   //Uncheck and disable all Category's radio buttons
   CatRadioSettings(0);
   //Reset selected radio hidden to ""
   document.getElementById('hdnSelCat').value = "";   
   //var arrDefault = DefaultAdminWeights.split(",");      
   //DefaultWeights = "";
   //for(var i=1;i<=6;i++)
   //{
     //DefaultWeights = DefaultWeights +document.getElementById('hdninnerdiv' + i).value + ",";
   //}     
   
   //if(trimAll(DefaultAdminWeights) != trimAll(DefaultWeights.substring(0,DefaultWeights.length-1)))
       SetInitialSliderPos(DefaultAdminWeights);     
}


var CatRadioSettings = function(mode)
{
    for (i = 1; i <= 6; i++)
    {
        if(mode == 0)
        {
            document.getElementById('grpCategory' + i).checked = false;
            document.getElementById('grpCategory' + i).disabled = true;
        }
        else{
            document.getElementById('grpCategory' + i).disabled = false;
        }
    }
}



function DoResize()
{

    //Set Positions of Slider divs
    for(i=1;i<=6;i++)
	{
		ProductX = findPosX(document.getElementById('div'+i));
		ProductY = findPosY(document.getElementById('div'+i));		
	    if(browser == "IE" && IEversion == 6){
		    document.getElementById('appinnerdiv'+i).style.left = (ProductX + 2)+ 'px';
		    document.getElementById('appinnerdiv'+i).style.top = (ProductY+5)+ 'px';
		}else if (browser == 'IE' && IEversion > 6){
		    document.getElementById('appinnerdiv'+i).style.left = (ProductX + 2)+ 'px';
		    document.getElementById('appinnerdiv'+i).style.top = (ProductY+5)+ 'px';
		}else{
		    document.getElementById('appinnerdiv'+i).style.left = (ProductX)+ 'px';
		    document.getElementById('appinnerdiv'+i).style.top = (ProductY + 3)+ 'px';
		}
	}
	
	//Set Positions of MaskDiv
    ProductX = findPosX(document.getElementById('divCat'));
    ProductY = findPosY(document.getElementById('divCat'));
    document.getElementById('divMask').style.left = (ProductX + 24) + 'px';
    document.getElementById('divMask').style.top = (ProductY)+ 'px';
}

window.onresize = DoResize;


