var compFirst;
var bcompareshowsimilar;
var objbtnHideSimilar;
var sGeckoShowRow;

function initializeCompareFuncs(){
	compFirst = true;
	bcompareshowsimilar = true;
	objbtnHideSimilar = document.getElementById('btnHideSimilar');
	if (objbtnHideSimilar != null){
		objbtnHideSimilar.innerHTML = sTextHideSimilar;
		objbtnHideSimilar.onClick="javascript:comparerecalcsimilar('hidesimilar');";
	}
	if ((navigator.userAgent.indexOf("Gecko") != -1)||(navigator.userAgent.indexOf("Opera") != -1))
		sGeckoShowRow = 'table-row';
	else
		sGeckoShowRow = 'block';
}

function getElementsByClass(searchClass,node,tag){
  var classElements = new Array();
  if (node == null)
    node = document;
  if (tag == null)
    tag = '*';
  var els = node.getElementsByTagName(tag);
  var elsLen = els.length;
  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  for (i = 0, j = 0; i < elsLen; i++) {
    if (pattern.test(els[i].className) ) {
      classElements[j] = els[i];
      j++;
    }
  }
  return classElements;
}
function comparehideclass(cpname){
	var objcp=getElementsByClass(cpname);
	for (var cpctr = 0; cpctr < objcp.length; cpctr++){
		objcp[cpctr].className = objcp[cpctr].className += ' hide';
	}
	comparerecalcsimilar('hilite');
	comparecheckoneproduct();
	resizePageWidth();
}
function compareshowclass(cpname){
	var objcp=getElementsByClass(cpname);
	for (var cpctr = 0; cpctr < objcp.length; cpctr++){
		objcp[cpctr].className = objcp[cpctr].className.replace(' hide','');
	}
	comparerecalcsimilar('hilite');
	comparecheckoneproduct();
	resizePageWidth();
}
function compareshowhiderow(rtsig){
	var objimg = document.getElementById(rtsig)
	if (objimg.src.indexOf('Minus') != -1){
		comparehideclass(rtsig);
		objimg.src='/bravia/image/layout/content/icoPlus.gif';
	}
	else{
		compareshowclass(rtsig);
		objimg.src='/bravia/image/layout/content/icoMinus.gif';
	}
}
function comparerecalcsimilar(sMode){
	if (objbtnHideSimilar != null){
		var bDiff = false;
		var objTRArray;
		var objTDArray;
		var objPArray;
		var pInnerHTML;
		if (sMode == ''){
			if (bcompareshowsimilar)
				sMode = 'showsimilar';
			else
				sMode = 'hidesimilar';
		}
		var table = document.getElementById('tblProductComparison'); 
		var objTBodyArray = getElementsByClass("rowGroup"); 
		var hiddenItemsCount;
		// Loop through tbody tags
		for (var i = 0; i < objTBodyArray.length; i++){
			blnHasRows = false;
			firstRowIndex = -1;	
			hiddenItemsCount = 0;			

			objTRArray = objTBodyArray[i].getElementsByTagName('tr');	
			
			for (var trcount = 0; trcount < objTRArray.length; trcount++){
				if (objTRArray[trcount].className == 'rowTechSpecItem first'){				
					firstRowIndex = trcount;
				}
				else
				{
					objTDArray = getElementsByClass('cp',objTRArray[trcount],'td');
					pInnerHTML = '';
                    bDiff = (objTRArray[trcount].className.indexOf('diff')> 0);
					switch (sMode){
						case 'hilite':{
							objTRArray[trcount].className = objTRArray[trcount].className.replace(' diff','');							
							if (bDiff){
								objTRArray[trcount].className += ' diff';
								bDiff = false;
							}
							break;
						}
						case 'hidesimilar':{
							objTRArray[trcount].className = objTRArray[trcount].className.replace(' sim','');
							if (!bDiff){
								objTRArray[trcount].className += ' sim';
								hiddenItemsCount += 1;
								if (hiddenItemsCount == (objTRArray.length - 1))
									objTBodyArray[i].style.display = 'none';
								else
									objTBodyArray[i].style.display = '';
									
							}
							else
								bDiff = false;
							bcompareshowsimilar = false;
							break;
						}
						case 'showsimilar':{
							objTRArray[trcount].className = objTRArray[trcount].className.replace(' sim','');
							objTBodyArray[i].style.display = '';
							bcompareshowsimilar = true;
							break;
						}
						default:
							break;						
					}
				}
			}	
		}
	}
}
function compareswitchhidesimilar(){
	if (bcompareshowsimilar){
		comparerecalcsimilar('hidesimilar');
		objbtnHideSimilar.innerHTML = sTextShowSimilar;
	}
	else{
		comparerecalcsimilar('showsimilar');
		objbtnHideSimilar.innerHTML = sTextHideSimilar;
	}
}
function comparecheckoneproduct(){
	// btn not present on new compare
	if (document.getElementById('btnUnhideAll')!=null){
		var bVisibleCount = 0;
		var bInVisibleCount = 0;
		var objTDArray = getElementsByClass('cphdr');
		for (var spancount = 0; spancount < objTDArray.length; spancount++){
			if (objTDArray[spancount].className.indexOf(' hide') == -1)
				bVisibleCount += 1;
			else
				bInVisibleCount += 1;
		}
		if (bInVisibleCount > 0)
			document.getElementById('btnUnhideAll').style.display = 'block';
		else
			document.getElementById('btnUnhideAll').style.display = 'none';
		
		var objTRArray = getElementsByClass('similar');
		var objSpanArray = getElementsByClass('hid');
		for (var spancount = 0; spancount < objSpanArray.length; spancount++){
			if (bVisibleCount > 1){
				objSpanArray[spancount].style.display = 'block';
				if (objbtnHideSimilar != null)
					objTRArray[0].style.display = sGeckoShowRow;
			}
			else{
				objSpanArray[spancount].style.display = 'none';
				if (objbtnHideSimilar != null){
					comparerecalcsimilar('showsimilar');
					objbtnHideSimilar.innerHTML = sTextHideSimilar;
					objTRArray[0].style.display = 'none';
				}
			}
		}
	}
}
function resizePageWidth(){
    var mainContainer = getElementsByClass('main',null,null);
// Uncomment when WEP toolbar is added
//  var topbar = getElementsByClass('topbar',null,null);
    var bordersTable = document.getElementById('bordersTable');
    var footer = getElementsByClass('mainBottom',null,null);
    var firstTab;
    if(mainContainer.length > 0 && footer.length > 0 && bordersTable != null){
        var currMainWidth = 1220;
        var targetWidth = bordersTable.offsetWidth + 157
        if(targetWidth > currMainWidth){
            //mainContainer[0].style.width = targetWidth;
			mainContainer[0].style.width = parseInt(targetWidth) + 'px';
            //footer[0].style.width = targetWidth;
			footer[0].style.width = parseInt(targetWidth) + 'px';
            if(compFirst){
                firstTab = getElementsByClass('on', null, null);
                firstTab[0].style.width = firstTab[0].offsetWidth + 3;
            }
        }
        else{
            mainContainer[0].style.width = currMainWidth;
            footer[0].style.width = currMainWidth;
        }
    }
// Uncomment when WEP toolbar is added
//  topbar[0].style.width = mainContainer[0].style.width;
    if(compFirst){
        compFirst = false;
        setTimeout('resizePageWidth()', 1);
    }
}
comparerecalcsimilar('hilite');
comparecheckoneproduct();
