/*
 * Vodafone Design System
 * Main JavaScript functions for Digital Assets 1.3
 * Release:
 * 
 */
 
 //Adding initial jsEnabled class to body to set things that depend on js visible
window.onload = function () {
document.getElementsByTagName("body")[0].className = "jsEnabled";
}

// Hide instruction text for password field
function txt2pwd(obj, pwd){
  obj.style.visibility = "hidden";
  document.getElementById(pwd).focus();
}

// Display instruction text for password field
function pwd2txt(obj, txt){
  if(obj.value.length==0){
    document.getElementById(txt).style.visibility = "visible";
  }
}

// Display instruction text [str] if field is blank
// Clear instruction text if field is clicked
function resetField(obj,str){
  if(obj.value.length==0){
    obj.value=str;
    return;
  }
  if(obj.value==str){
    obj.value="";
  }
}

// Tab switcher - initialisation 
// tabContainerId = ID of tab container
function initTabs(tabContainerId, classAddition){
  var tabContainer = document.getElementById(tabContainerId); 
  if (!tabContainer) return;

  if (typeof(classAddition)!='undefined' && classAddition!='') {
    tabContainer.className+=' '+classAddition;
  }

  var divSet = tabContainer.getElementsByTagName('div');
  var firstTabFlag=0;
  for (var i=0; i<divSet.length; i++) {
    if (divSet[i].className=='tabcontent') {
      if (!firstTabFlag) {
        divSet[i].className='';
        firstTabFlag=1;
      } else {
        divSet[i].className='hidden';
      }
    }
  }
}


// Tab switcher
// container = ID of tab container, must be used if more than one tab module is used on page (optional usage if only one tab module is displayed on a page )
// tab = ID of tab (mandatory)
function showTab(tab, container){
  if(typeof(container)=='undefined') {
    container='';
  }
  var i=1;
  do{
    document.getElementById(container+"tab"+i).className = "tab";
    document.getElementById(container+"tab"+i+"content").style.display="none";
    i++;
  } while(document.getElementById(container+"tab"+i));
  document.getElementById(container+tab+"content").style.display="block";
  document.getElementById(container+tab).className = "activeTab";
	
	return false; // just to avoid in-page jumping after tab-swich
} // showTab





// replace the HTML Call-to-action box by a flash movie using the Vodafone corporate font
function replaceCTABox(){
  var cta = document.getElementById('ctaLayer');
  var preContent = cta.innerHTML;
  var ctaMod = cta.parentNode;
  if (ctaMod!=null && cta!=null) {
    var h1,s,a,l,u,t; h1=s=a=l=u=t='';
    if (cta.getElementsByTagName("STRONG")[0]!=null) h1= encodeURI(cta.getElementsByTagName("STRONG")[0].innerHTML);
    if (cta.getElementsByTagName("EM")[0]!=null) s = encodeURI(cta.getElementsByTagName("EM")[0].innerHTML);
    var w = cta.offsetWidth;
    var h = cta.offsetHeight;
    
    var so = new SWFObject("../swf/calltoactionbox.swf", "calltoactionbox", w, h, "8", "#e60000");
    so.addVariable("head", h1);
    so.addVariable("sub", s);
    so.addVariable("boxw", w);
    so.addVariable("boxh", h);
    
    var a = cta.getElementsByTagName("A")[0];
    if (a!=null) {
    var l = encodeURI(a.innerHTML);
    var u = encodeURI(a["href"]);
    var t = a["target"];
      
      so.addVariable("link", l);
      so.addVariable("url", u);
      so.addVariable("target", t);
    }   
  }
  so.write("ctaLayer");
  cta.innerHTML = cta.innerHTML + '<span class="inv">'+preContent+'</span>';
} // replaceCTABox


// replace the HTML Call-to-action box by a flash movie
function replaceFlashBox(swf){
	var cta = document.getElementById('flashcontent');
	var preContent = cta.innerHTML;
	var so = new SWFObject(swf, "flashcontent", "762", "168", "8", "#e60000");
	so.write("flashcontent");
	cta.innerHTML = cta.innerHTML + '<span class="inv">'+preContent+'<\/span>';	
} // replaceFlashBox


// replace the Submit-Button with a styled JS-Button
function replaceButton(formId, buttonId) {
  var form = document.getElementById(formId);
  var button = document.getElementById(buttonId);
  if (!form && !button) return;
  
  var text = button["value"];
  var color = button.className; // f.e. inputBtnRed
  color = color.slice(8); // f.e. Red
  switch (color) {
    case "GreyNoShadow":
    case "Green":
    case "Green1":
    case "Green2":
    case "Green3":
    case "Blue2":
    case "Red":
    case "Purple":
    case "Grey":
    case "GreyOnRed":
    case "Purple":
      break;
    default:
      color = "Red";
  }
  //button.className = "hide";
  //Refactored as double buttons apeared when js is active and css disabled hoh 20090127
  button.parentNode.removeChild(button);
  var buttonObjStr = "<a href='#' onclick='document.getElementById(\""+formId+"\").submit();' class='textBtn"+color+" formBtn'><span>"+text+"</span></a>";
  document.write(buttonObjStr);   
} // replaceButton

// enable jumpenus to redirect to target URL
function activateJumplink(formId) {
  var form = document.getElementById(formId);
  if (!form) return;

	var selectEls = form.getElementsByTagName("select");
	for( i = 0; i < selectEls.length; i++ ) {
		if( selectEls[i].className == "jumpmenu inv" && document.getElementById(selectEls[i].id) != "" ) {
			helpmenu = document.getElementById(selectEls[i].id);
			
			// delete inv class --> show select
			helpmenu.className = "jumpmenu";
			// add inv class --> hide list
			var ul = form.getElementsByTagName("UL")[0];
			var ulClass = ul.className;
			ul.className = ulClass+" inv";
			/* not accessible
			helpmenu.onchange = function() {
				if( this.options[this.selectedIndex].value != '' ) {
					if (this.options[this.selectedIndex].value!='')
  				  location.href=this.options[this.selectedIndex].value;
				}
			}
			*/
		}
	}
} // activateJumplink


// initialise fold sections on shopping cart page
function scActivateFold(optId, status) {
  var optHeader = document.getElementById(optId);
  if (optHeader!=null) {
		var linktext = optHeader.firstChild.nodeValue;
		if (linktext!=null && linktext!='') {
      optHeader.removeChild(optHeader.firstChild);
			
		  foldLink = document.createElement("a");
			flText = document.createTextNode(linktext);
			
			var classAttrib = "scOptShow";
			
			foldLink.setAttribute("id", optId+"Link")
			foldLink.setAttribute("href","#"); // needed for correct mouse behaviour
			foldLink.className = classAttrib;
			foldLink.onclick = function() { scFold(optId); return false;	}
			foldLink.appendChild(flText);
			optHeader.appendChild(foldLink);	
			
			// and if status is set to 'hide', hide it...
			if (status=='hide') scFold(optId);
		}
  }	
} // scActivateFold


// fold and unfold option sections on shopping cart page
function scFold(optId) {
  var optHeader = document.getElementById(optId+"Link");
  if (optHeader!=null) {
    var pattern = new RegExp("(^|\\s)"+optId+"(\\s|$)");
    var trList = document.getElementsByTagName('tr');
    if (optHeader.className=="scOptShow") {
      // hide options
      for (i=0; i<trList.length; i++) {
        if (pattern.test(trList[i].className)) {
          trList[i].className=optId+" hidden";
        }
      }
      optHeader.className="scOptHide";      
    } else {
      // show options
      for (i=0; i<trList.length; i++) {
        if (pattern.test(trList[i].className)) {
          trList[i].className=optId;
        }
      }     
      optHeader.className="scOptShow";      
    }
  }
	return false; // don't follow link after folding/unfolding
} // scFold

