var timerlen = 5;
var slideAniLen = 500;
var outerDiv = "proConDiv";
var outerDivHgt = 655;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();


function slidedown(objname, objSlideDiv, txtDiv, newHt){	
	
		var obj = document.getElementById(objname);		
			
        if(moving[objname])
                return;

        moving[objname] = true;
        dir[objname] = "down";
        
        startslide(objname, newHt);  
        
	    var divObj = document.getElementById(objSlideDiv);
	    
	    if (txtDiv!=""){
		    var txtSplit = txtDiv.split('_');
	        if (txtSplit[0]=="mainNws"){
				divObj.onclick = function(e) {
					slideup(objname, objSlideDiv, txtDiv);
					var t = setTimeout(function(){showOrig('nswDscShortTxt'+txtSplit[1],1);},470);
				}
			}else{
				divObj.onclick = function(e) {
					slideup(objname, objSlideDiv, txtDiv);
				} 
			}
		}else{
			divObj.onclick = function(e) {
				slideup(objname, objSlideDiv, txtDiv);
			} 
		}

		if (document.getElementById(outerDiv)) {
			var mainObj = document.getElementById(outerDiv);
			var slideObj = document.getElementById(objname);
			var totalEmlHgt = parseInt(slideObj.offsetTop) + parseInt(endHeight[objname]);
			if (parseInt(mainObj.offsetHeight) > outerDivHgt) {
				var totalEmlHgt = parseInt(slideObj.offsetHeight) + parseInt(endHeight[objname]);
				mainObj.style.height = (parseInt(mainObj.offsetHeight) + totalEmlHgt) + 'px';
			}else if (parseInt(mainObj.offsetHeight)<totalEmlHgt) {
				mainObj.style.height = totalEmlHgt + 'px';
			}
		}
	
		var newTxtDiv;
		newTxtDiv = (txtDiv!="")?txtSplit[0]:txtDiv;
		
		switch(newTxtDiv){			
			case "cartId":
		        var txtObj = document.getElementById('cartId');
        		txtObj.innerHTML = 'close shopping basket';      
			break;
			case "emtfId":
		        var txtObj = document.getElementById('emtfId');
		        txtObj.innerHTML = 'close email to a friend';
			break;
			case "mainNws":
		        var txtObj = document.getElementById(txtDiv);
	        	txtObj.innerHTML = 'hide';
	        	adjustFrontHt('subNewsDiv','naviDiv','mainNewsDiv',1);
			break;
			case "faq":
	        	adjustFrontHt('subNewsDiv','naviDiv','mainNewsDiv',1);
			break;
			case "events":
	        	adjustFrontHt('subNewsDiv','naviDiv','mainNewsDiv',3);
			break;
		}
				
}

function slideup(objname, objSlideDiv, txtDiv){
		
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")
                return; // cannot slide up something that is already hidden

        moving[objname] = true;
        dir[objname] = "up";
        
        startslide(objname);
        
        var divObj = document.getElementById(objSlideDiv);
        if (txtDiv!=""){
	        var txtSplit = txtDiv.split('_');
	        if (txtSplit[0]=="mainNws"){
				divObj.onclick = function(e) {
					slidedown(objname, objSlideDiv, txtDiv);
					showOrig('nswDscShortTxt'+txtSplit[1],0);
				} 
			}else{
				divObj.onclick = function(e) {
					slidedown(objname, objSlideDiv, txtDiv);
				} 				
			}
		}else{
			divObj.onclick = function(e) {
				slidedown(objname, objSlideDiv, txtDiv);
			} 
		}
		
		if (document.getElementById(outerDiv)) {
			var mainObj = document.getElementById(outerDiv);
			var slideObj = document.getElementById(objname);
			var totalEmlHgt = parseInt(slideObj.offsetTop) - parseInt(endHeight[objname]);
			if (parseInt(mainObj.offsetHeight) < outerDivHgt) {
				mainObj.style.height = outerDivHgt + 'px';
				//alert(111);
			}else if (parseInt(mainObj.offsetHeight)>totalEmlHgt) {
				totalEmlHgt = (totalEmlHgt<outerDivHgt) ? outerDivHgt : totalEmlHgt;
				mainObj.style.height = totalEmlHgt + 'px';
			}
		}				
		
		var newTxtDiv;
		newTxtDiv = (txtDiv!="")?txtSplit[0]:txtDiv;
		
		switch(newTxtDiv){			
			case "cartId":
		        var txtObj = document.getElementById('cartId');
        		txtObj.innerHTML = 'add to basket';      
			break;
			case "emtfId":
		        var txtObj = document.getElementById('emtfId');
		        txtObj.innerHTML = 'email to a friend';
			break;
			case "mainNws":
		        var txtObj = document.getElementById(txtDiv);
	        	txtObj.innerHTML = 'read more';
	        	adjustFrontHt('subNewsDiv','naviDiv','mainNewsDiv',5);
			break;
			case "faq":
	        	adjustFrontHt('subNewsDiv','naviDiv','mainNewsDiv',0);
			break;
			case "events":
	        	adjustFrontHt('subNewsDiv','naviDiv','mainNewsDiv',2);
			break;
		}
}


function startslide(objname, newHt){
	
        obj[objname] = document.getElementById(objname);
		
        endHeight[objname] = parseInt(obj[objname].style.height);
        
		if(newHt){
			endHeight[objname] = newHt; 	
		}        
        		
        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "down"){
                obj[objname].style.height = "1px";
        }

        obj[objname].style.display = "block";

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
        
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];

        if (elapsed > slideAniLen)
                endSlide(objname)
        else {
            var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
            if(dir[objname] == "up")
                    d = endHeight[objname] - d;

            obj[objname].style.height = d + "px";
        }

        return;
}

function endSlide(objname){
        clearInterval(timerID[objname]);

        if(dir[objname] == "up")
                obj[objname].style.display = "none";

        obj[objname].style.height = endHeight[objname] + "px";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}
function slideNewsDiv(id, obj){
		
	var divObj = document.getElementById('slideDiv_' + id);
	var InnerDiv = document.getElementById('dataDiv_' + id);	

	if(!divObj.oldHeight){
		divObj.oldHeight = divObj.offsetHeight;
	}
	
	if(divObj.oldHeight > InnerDiv.offsetHeight){
		InnerDiv.offsetHeight = divObj.oldHeight;
	}

	if(divObj.oldHeight != divObj.offsetHeight){
		divSlideUp(id);
		obj.innerHTML = "read more";
	}else{	
		divSlideDown(id, parseInt(InnerDiv.offsetHeight));
		obj.innerHTML = "hide";
	}
	adjustFrontHt('subNewsDiv','naviDiv','mainNewsDiv',4);	
}

function divSlideDown(id, divHeight, obj){
	var divObj = document.getElementById('slideDiv_' + id);
	
	if(parseInt(divObj.offsetHeight)!= divHeight){		
		var inc = (divHeight-parseInt(divObj.offsetHeight) < 5 ) ? divHeight-parseInt(divObj.offsetHeight) : 5;
		divObj.style.height = parseInt(divObj.offsetHeight + inc )  + 'px';
		divObj.setTime = setTimeout('divSlideDown(\''+ id +'\',\''+ divHeight +'\')',20);
	}else{
		clearTimeout(divObj.setTime);
	}	
		
}

function divSlideUp(id){
	var divObj = document.getElementById('slideDiv_' + id);
	
	if(parseInt(divObj.offsetHeight)!= divObj.oldHeight){		
		var inc = (parseInt(divObj.offsetHeight) - divObj.oldHeight < 5 ) ? parseInt(divObj.offsetHeight) - divObj.oldHeight : 5;
		divObj.style.height = parseInt(divObj.offsetHeight - inc )  + 'px';
		divObj.setTime = setTimeout('divSlideUp(\''+ id +'\')',20);
	}else{
		clearTimeout(divObj.setTime);
	}	
		
}