﻿function ImposeMaxLength(Object, MaxLen)
{
  return (Object.value.length <= MaxLen);
}


function ValidateEProductSubCategory(sender, args, tags)
{
    var hasAtLeastOneTag = false;
    var i;
    
    // check if there's atleast one tag
    for (i=0; i<tags.length; i++)
    {
        if (tags[i].length >= 2)
        {
            hasAtLeastOneTag = true;
        }
    }
    
    if (hasAtLeastOneTag == false)
    {
        args.IsValid = false;
        sender.errormessage = EPRODUCT_SUB_CATEGORY_MIN_TAGS;
        sender.innerHTML = sender.errormessage;
    }
    else
    {
        var tagExp = /^[0-9A-Za-zא-תåäöÅÄÖé\s]{2,100}$/
        
        var isOk = true;
        
        // check if there's one tag which is not valid
        for (i=0; i<tags.length; i++)
        {
            if (tags[i].length > 0 && tags[i].search(tagExp)== -1)
            {
                isOk = false;
                break;
            }
        }
        
        if (isOk == false)
        {
            args.IsValid = false;
            sender.errormessage = EPRODUCT_SUB_CATEGORY_IS_INVALID;
            sender.innerHTML = sender.errormessage;
        }
        else
        {
            args.IsValid = true;
        }
    }
}

function ValidateTags(sender, args, tags)
{
    var hasAtLeastOneTag = false;
    var i;
    
    // check if there's atleast one tag
    for (i=0; i<tags.length; i++)
    {
        if (tags[i].length >= 2)
        {
            hasAtLeastOneTag = true;
        }
    }
    
    if (hasAtLeastOneTag == false)
    {
        args.IsValid = false;
        sender.errormessage = TAG_MIN_TAGS;
        sender.innerHTML = sender.errormessage;
    }
    else
    {
        var tagExp = /^[0-9A-Za-zא-תåäöÅÄÖé\s]{2,25}$/
        
        var isOk = true;
        
        // check if there's one tag which is not valid
        for (i=0; i<tags.length; i++)
        {
            if (tags[i].length > 0 && tags[i].search(tagExp)== -1)
            {
                isOk = false;
                break;
            }
        }
        
        if (isOk == false)
        {
            args.IsValid = false;
            sender.errormessage = TAG_IS_INVAID;
            sender.innerHTML = sender.errormessage;
        }
        else
        {
            args.IsValid = true;
        }
    }
}

function ValidateChooseTags(sender, args, tags, minTags)
{
    var tagsCounter = 0;
    var i;
    var isDuplicate = false;
    
    // check for duplicate tags
    for (i=0; i<tags.length && isDuplicate == false; i++)
    {
        for (j=i+1; j<tags.length && isDuplicate == false; j++)
        {
            if (tags[i] == tags[j] && tags[i].length >= 2)
            {
                isDuplicate = true;        
            }
        }
    }
    
    if (isDuplicate == true)
    {
        args.IsValid = false;
        sender.errormessage = TAG_IS_DUPLICATE;
        sender.innerHTML = sender.errormessage;
    }
    else
    {
        // check if there's atleast one tag
        for (i=0; i<tags.length; i++)
        {
            if (tags[i].length >= 2)
            {
                tagsCounter++;
            }
        }
        
        if (tagsCounter < minTags)
        {
            args.IsValid = false;
            var errmsg = TAG_MIN_TAGS_MANY;
            errmsg = errmsg.replace("{0}", minTags);
            sender.errormessage = errmsg;
            sender.innerHTML = sender.errormessage;
        }
        else
        {
            var tagExp = /^[0-9A-Za-zא-תåäöÅÄÖé\s]{2,25}$/
            
            var isOk = true;
            
            // check if there's one tag which is not valid
            for (i=0; i<tags.length; i++)
            {
                if (tags[i].length > 0 && tags[i].search(tagExp)== -1)
                {
                    isOk = false;
                    break;
                }
            }
            
            if (isOk == false)
            {
                args.IsValid = false;
                sender.errormessage = TAG_IS_INVAID;
                sender.innerHTML = sender.errormessage;
            }
            else
            {
                args.IsValid = true;
            }
        }
    }
}


function IsValidDate(Day,Mn,Yr){
    var DateVal = Mn + "/" + Day + "/" + Yr;
    var dt = new Date(DateVal);

    if(dt.getDate()!=Day){
        alert('Invalid Date');
        return(false);
        }
    else if(dt.getMonth()!=Mn-1){
    //this is for the purpose JavaScript starts the month from 0
        alert('Invalid Date');
        return(false);
        }
    else if(dt.getFullYear()!=Yr){
        alert('Invalid Date');
        return(false);
        }
        
    return(true);
 }

function DateValidation(sender, args){
   var dateparts = sender.value.split('/');
   
   if (dateparts.length != 3)
   {
     args.IsValid = false;
   }
   else
   {
        if(IsValidDate(dateparts[0],dateparts[1],dateparts[2]))
            args.IsValid=true;
        else
            args.IsValid=false;
   }
}


function RemoveBad(strTemp) { 
    strTemp = strTemp.replace(/\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-/g,""); 
    return strTemp;
} 


function OpenDialogWindow(url)
{
    window.open(url ,null,"height= 600,width= 800,top= 0,left= 0, scrollbars= yes, resizable=yes");
}

function ValidatePhotoExtension(sender, args)
{
    var txtUploadFile = $get(sender.controltovalidate);
    var ext;
    
    args.IsValid = true;
    
    if (txtUploadFile.value.length > 0)
    {
        try
        {
            ext = txtUploadFile.value.toLowerCase().substr(txtUploadFile.value.length - 4, 4);
            
            if (ext != ".jpg" && ext != ".gif" && ext != ".png")
            {
                args.IsValid = false;
            }
        }
        catch (Error)
        {
            args.IsValid = false;
        }
    }
}

// enables click once feature during postback
// flag : the button's enabled flag name
function enableClickOnce(flag)
{
	// only if the page is valid
	if (Page_ClientValidate())
	{
		// if the button is disabled return false
		if (eval(flag))
		{
			return false;
		}
		// if the button is enabled, disable it and return true
		else
		{
			eval(flag + ' = true;');
			return true;
		}
	}
}

function DisableButton(buttonID)
{
    setTimeout('DisableButtonDelayed("' + buttonID + '")',100);
    return true;
}

function DisableButtonDelayed(buttonID)
{
    // only if the page is valid
	if (Page_IsValid)
	{
        var button = document.getElementById(buttonID);
        button.disabled = true;
    }
}


//function isWhitespace get string field and check if all the chars 
//at string are space.
//return true if they are or false if not
function isWhitespace(s)
{
	var checkStr = s.value;
	var whitespace = " ";
	var i;
	var countWiteSpace = 0;
	var stringLen = checkStr.length;
	for (i=0; i<stringLen; i++)
	{
		var c = checkStr.charAt(i);
		if (whitespace.indexOf(c)!= -1)//char is space 
		{
			countWiteSpace = countWiteSpace + 1;
		}
	}

	if (Number(stringLen)==Number(countWiteSpace))//all string is pace
	{
		return true;
	}
	else
	{
		return false;
	}
}

function isEmpty(pre_s)
{ 
   if(pre_s == '')
     return true;
}
function isDigit(c)
{
   if(c>="0" && c<="9")
      return true;
}

function isInteger(pre_s)
{   var s;
    if(isEmpty(pre_s))
       return false;
    for(i=0; i< pre_s.length; i++)
    {
        var c=pre_s.charAt(i);
        if(!isDigit(c))
           return false;
    } 
    return true;  
}

//execute function to filter unwanted
//characters in the text box
function FilterCharacters(p_filter)
{
	// filter unwanted characters
	if (p_filter != "")
	{
		eval(p_filter + "();");
	}
}

function PasteNumberToFewControls(src, arg)
{
	var sNewString = "";
	
	sNewString = window.clipboardData.getData("Text", "");
	
	while(sNewString.indexOf(" ") >= 0)
	{
		sNewString = sNewString.replace(" ", "");
	}
	
	var controls = event.srcElement.OnPasteControls;
	var controlsLength = event.srcElement.OnPasteControlsLength;
	controlsLength = controlsLength*1;

	var controlsCollection = controls.split(",");			
	var index = 0;		
	
	var totalLength = controlsLength * controlsCollection.length
		
	if(sNewString.length == totalLength && isInteger(sNewString) == true)
	{				
		for (i=0; i<controlsCollection.length; i++)
		{													
			document.getElementById(controlsCollection[i]).value = sNewString.substr(index, controlsLength);					
			index = index + controlsLength;
		}
							
		event.returnValue = false;
	}
	else
	{
		event.returnValue = true;
	}
}


function SetFocusOnControl(controlId)
{	
	if(document.getElementById(controlId) != null)
	{				
		setTimeout('document.getElementById("' + controlId + '").focus();',100);		
	}
}

// focuses next textbox when current textbox value reaches max length 
// p_currentTextBox - current focused textbox
// p_nextTextBox	- next to be focused textbox
// p_filter			- filter unwanted characters function name (optional, case sensitive)
function FocusNext_onKeyUp(p_currentTextBox, p_nextTextBox, p_filter)
{
	var ch				= event.keyCode;
	var currentTextBox	= document.getElementById(p_currentTextBox);
	var nextTextBox		= document.getElementById(p_nextTextBox);
	
	// if not filtered 
	if (isNormalCharacter(ch) == true)
	{
		// check if the current text box has reached max length
		if (currentTextBox.value.length >= currentTextBox.maxLength)
		{
			currentTextBox.value = currentTextBox.value.slice(0, currentTextBox.size);
			
			// set focus to the next textbox
			if (nextTextBox.disabled == false)
			{
				nextTextBox.focus();
			}
		}
	}
}

function isNormalCharacter(ch)
{
	var result = false;
	
	if((ch >= 65&& ch <= 90)||(ch >= 97 && ch <= 122) ||(ch >= 48 && ch <= 57)||(ch==45)||(ch==95)||(ch==96)||(ch>=1488 && ch<=1514)||(ch==32)||
		(ch==44)||(ch==46)||(ch==39)||(ch==34)||(ch==37)||(ch==92)||(ch==47))
	{
		result = true;
	}
	
	return result;
}

//key handler functions
function getOnlyNumbers()
{
	var ch=event.keyCode;
	
	event.returnValue = (ch >= 48 && ch <= 57);
}

function getOnlyCurrency()
{
	var ch=event.keyCode;
	event.returnValue = ((ch >= 48 && ch <= 57)|| (ch==46));
}

function getDate()
{
	var ch=event.keyCode;
	event.returnValue = ((ch >= 48 && ch <= 57)|| (ch==47));
}

function GetNumbersAndLetters ()
{
	var ch=event.keyCode;
	//if ((event.keyCode > 32 && event.keyCode < 44)|| (event.keyCode > 46 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 94) || (event.keyCode > 96 && event.keyCode < 97) || (event.keyCode >= 1488 && event.keyCode <= 1514))  
		event.returnValue =(ch >= 65&& ch <= 90)||(ch >= 97 && ch <= 122) ||(ch >= 48 && ch <= 57)||(ch==45)||(ch==95);
}

function GetNumbersAndLettersAlsoHeb ()
{
	var ch=event.keyCode;
	//if ((event.keyCode > 32 && event.keyCode < 44)|| (event.keyCode > 46 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 94) || (event.keyCode > 96 && event.keyCode < 97) || (event.keyCode >= 1488 && event.keyCode <= 1514))  
		event.returnValue =(ch >= 65&& ch <= 90)||(ch >= 97 && ch <= 122) ||(ch >= 48 && ch <= 57)||(ch==45)||(ch==95)||(ch>=1488 && ch<=1514)||(ch==32);
}

function GetAlphaNumeric()
{
	var ch=event.keyCode;
	event.returnValue = (ch >= 65&& ch <= 90)||(ch >= 97 && ch <= 122) ||(ch==92)||(ch==47)||(ch==46)||(ch==37)||(ch==34)||(ch==32)||getEnglish(ch)||getInt(ch)||(ch>=1488 && ch<=1514);
}


function ToggleExpand(p_obj,p_targert)
{
    var obj = document.getElementById(p_obj);
    var target = document.getElementById(p_targert);
    
    if (target.style.display == "none")
    {
        // show
        target.style.display = "";
        obj.innerText = obj.attributes['expandedtext'].value;
    }
    else
    {
        target.style.display = "none";
        obj.innerText = obj.attributes['collapsedtext'].value;
    }
    return false;
}


/*javascript for Bubble Tooltips by Alessandro Fulciniti
- http://pro.html.it - http://web-graphics.com */

function enableTooltips(id){
var links,i,h;
if(!document.getElementById || !document.getElementsByTagName) return;
AddCss();
h=document.createElement("span");
h.id="btc";
h.setAttribute("id","btc");
h.style.position="absolute";
document.getElementsByTagName("body")[0].appendChild(h);
if(id==null) links=getElementsByClassName(document, "*", "tool-tip");
else links=document.getElementById(id).getElementsByClassName(document, "*", "tool-tip");
for(i=0;i<links.length;i++){
    Prepare(links[i]);
    }
}

function Prepare(el){
var tooltip,t,b,s,l;
t=el.getAttribute("title");
if(t==null || t.length==0) return; //t=""; // Fixed by guy bertental
el.removeAttribute("title");
tooltip=CreateEl("span","tooltip");
tooltip.setAttribute("dir","rtl"); // Fixed by guy bertental
s=CreateEl("span","top");
s.appendChild(document.createTextNode(t));
tooltip.appendChild(s);
b=CreateEl("b","bottom");
tooltip.appendChild(b);
setOpacity(tooltip);
el.tooltip=tooltip;
el.onmouseover=showTooltip;
el.onmouseout=hideTooltip;
el.onmousemove=Locate;
}

function showTooltip(e){
document.getElementById("btc").appendChild(this.tooltip);
Locate(e);
}

function hideTooltip(e){
var d=document.getElementById("btc");
if(d.childNodes.length>0) d.removeChild(d.firstChild);
}

function setOpacity(el){
el.style.filter="alpha(opacity:95)";
el.style.KHTMLOpacity="0.95";
el.style.MozOpacity="0.95";
el.style.opacity="0.95";
}

function CreateEl(t,c){
var x=document.createElement(t);
x.className=c;
x.style.display="block";
return(x);
}

function AddCss(){
//var l=CreateEl("link");
//l.setAttribute("type","text/css");
//l.setAttribute("rel","stylesheet");
//l.setAttribute("href","../CSS/bt.css");
//l.setAttribute("media","screen");
//document.getElementsByTagName("head")[0].appendChild(l);
}

function Locate(e){
var posx=0,posy=0;
if(e==null) e=window.event;
if(e.pageX || e.pageY){
    posx=e.pageX; posy=e.pageY;
    }
else if(e.clientX || e.clientY){
    if(document.documentElement.scrollTop){
        posx=e.clientX+document.documentElement.scrollLeft;
        posy=e.clientY+document.documentElement.scrollTop;
        }
    else{
        posx=e.clientX+document.body.scrollLeft;
        posy=e.clientY+document.body.scrollTop;
        }
    }
document.getElementById("btc").style.top=(posy+10)+"px";
document.getElementById("btc").style.left=(posx-20)+"px";
}
/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

/* minisite */
function TogglePanels(p_panelIDToShow,p_panelIDToHide)
{
    $get(p_panelIDToHide).style.display = "none";
    $get(p_panelIDToShow).style.display = "block";
    
}

function UpdateElementTitleClient(p_elementID, p_viewPanelID, p_editPanelID, p_txtTitleID, p_lblTitleID)
{
    // get client new title and contant
    var txtTitle = $get(p_txtTitleID);
    
    // update server
    PageMethods.UpdateElementTitle(p_elementID,p_viewPanelID, p_editPanelID, txtTitle.value, p_txtTitleID, p_lblTitleID, UpdateTextElementSucceededCallback,UpdateElementCommonFailureCallback);
}

function UpdateElementCommonFailureCallback(p_error)
{
   // Alert user to the error.
   alert(p_error.get_message());
}

function UpdateHtmlElementClient(p_elementID, p_viewPanelID, p_editPanelID, p_editorID, p_lblContantID)
{
    // get client new html
    var editor = tinyMCE.get(p_editorID);
    var contant = editor.getContent();
    
    // update server
    PageMethods.UpdateHTMLElement(p_elementID,p_viewPanelID, p_editPanelID, contant, p_lblContantID, UpdateTextElementSucceededCallback,UpdateElementCommonFailureCallback);
}

function UpdateEmbedElementClient(p_elementID, p_viewPanelID, p_editPanelID, p_editorID, p_lblContantID)
{
    // get client new embed
    var embed = $get(p_editorID).value;
    
    // update server
    PageMethods.UpdateEmbedElement(p_elementID,p_viewPanelID, p_editPanelID, embed, p_lblContantID, UpdateTextElementSucceededCallback,UpdateElementCommonFailureCallback);
}


function UpdateSiteTitleClient(p_txtSiteTitleID, p_ctlSiteTitleID, p_viewPanelID, p_editPanelID) 
{
    var txtSiteTitle = $get(p_txtSiteTitleID);
        
    PageMethods.UpdateSiteTitle(txtSiteTitle.value, p_txtSiteTitleID, p_ctlSiteTitleID, p_viewPanelID, p_editPanelID, UpdateTextElementSucceededCallback,UpdateElementCommonFailureCallback);
    
    return false;
}


function UpdateSiteSubTitleClient(p_txtSiteSubTitleID, p_ctlSiteSubTitleID, p_viewPanelID, p_editPanelID) 
{
    var txtSiteSubTitle = $get(p_txtSiteSubTitleID);
        
    PageMethods.UpdateSiteSubTitle(txtSiteSubTitle.value, p_txtSiteSubTitleID, p_ctlSiteSubTitleID, p_viewPanelID, p_editPanelID, UpdateTextElementSucceededCallback,UpdateElementCommonFailureCallback);
    
    return false;
}

function DeleteElementClient(p_elementID, p_elementContainerID)
{
    var isOk = confirm(MS_DELETE_ELEMENT_CONFIRM);
    
    if (isOk == true)
    {
        PageMethods.DeleteElement(p_elementID, p_elementContainerID, DeleteElementSucceededCallback, UpdateElementCommonFailureCallback);
    }
    
    return isOk;
}

function IsClassExists(p_node, p_className)
{
    var exists = false;
    var classes = p_node.className.split(" ");
    var i;
    for (i = 0; i < classes.length; i++)
    {
        if (classes[i].toUpperCase() == "MCEEDITOR")
        {
            exists = true;
        }
    }
    
    return exists;
}

// remove all tiny editors from TEXTAREAs
function RemoveTinyMCE(p_node)
{
    var i = 0;
    
    if (p_node.children != undefined) // IE
    {
         for (i = 0; i < p_node.children.length; i++)
        {
            RemoveTinyMCE(p_node.children[i]);
        }
    }
    else // FireFox
    {
        for (i = 0; i < p_node.childNodes.length; i++)
        {
            RemoveTinyMCE(p_node.childNodes[i]);
        }
    }
    
    if (p_node.nodeName == "TEXTAREA" && IsClassExists(p_node, "mceEditor") == true)
    {
        tinyMCE.getInstanceById(p_node.id).remove();
    } 
}

function DeleteElementSucceededCallback(p_returnValue)
{
    var i = 0;
    
    // get element
    var elementContainer = $get(p_returnValue);
    var elementContainerParent;
    
    RemoveTinyMCE(elementContainer);
    
    // get element's container
    if (elementContainer.parentElement != undefined) // IE
    {
        elementContainerParent = elementContainer.parentElement;
    }
    else // FireFox
    {
        elementContainerParent = elementContainer.parentNode;
    }
    
    elementContainerParent.removeChild(elementContainer);
    
    CreateMainElementSortable();
}

function UpdateQAndAElementClient(p_QOrA, p_elementID, p_qId, p_viewPanelID, p_editPanelID, p_txtID, p_lblID)
{
    var txt = $get(p_txtID);
    
    // update server
    PageMethods.UpdateQAndAElement(p_QOrA,p_elementID,p_qId, p_viewPanelID, p_editPanelID, txt.value, p_txtID, p_lblID, UpdateTextElementSucceededCallback,UpdateElementCommonFailureCallback);
}


function UpdateTextElementSucceededCallback(p_returnValue)
{
    var Label = $get(p_returnValue.LabelID);
    
    // copy title from textbox to label
    Label.innerHTML = p_returnValue.HTML;
    
    // switch to view mode
    TogglePanels(p_returnValue.ViewPanelID,p_returnValue.EditPanelID);
}

function AddQAndASubElementClient(p_elementID, p_questionListID)
{
    PageMethods.AddQAndASubElement(p_elementID, p_questionListID, AddQAndAElementSucceededCallback, UpdateElementCommonFailureCallback);
}

function AddElementSucceededCallback(p_returnValue)
{
    var container = $get(p_returnValue.ParentID);
    
    container.innerHTML = container.innerHTML + p_returnValue.Child;
 
    CreateMainElementSortable();
}

function AddQAndAElementSucceededCallback(p_returnValue)
{
    var container = $get(p_returnValue.ParentID);
    
    container.innerHTML = container.innerHTML + p_returnValue.Child;
 
    Sortable.create(container.id, {constraint:false, handle:'ChangeQuestionOrderTag',onUpdate: function() {SortQAndAElementsClient(Sortable.sequence(container.id)); }});
    CreateMainElementSortable();
}

function AddProductElementSucceededCallback(p_returnValue)
{
    var container = $get(p_returnValue.ParentID);
    
    container.innerHTML = container.innerHTML + p_returnValue.Child;
 
    Sortable.create(container.id, {constraint:false, handle:'ChangeProductOrderTag',onUpdate: function() {SortProductElementsClient(Sortable.sequence(container.id)); }});
    CreateMainElementSortable();
}

function CreateMainElementSortable()
{
    Sortable.create("elementsList", {constraint:false, handle:'ChangeOrderTag',onUpdate: function() {SortElements(Sortable.sequence("elementsList")); }});
}

function CreateSideMenuSortable()
{
    var mainUL = $get("ulSideMenu");
    
    for(var i = 0; i < mainUL.children.length; i++)
    {
        if(mainUL.children[i].children.length > 1)
        {
            var ulSubSideMenuId = mainUL.children[i].children[1].id;

            Sortable.create(ulSubSideMenuId, {constraint:false, handle:'ChangeOrderTag',containment:[ulSubSideMenuId], onUpdate: function() {SortSideSubMenu(Sortable.sequence(ulSubSideMenuId)); }});     
        }
    }
    //the main ul has to be the last sortable if we have nested ul's
    Sortable.create(mainUL, {constraint:false, handle:'ChangeOrderTag',containment:[mainUL], onUpdate: function() {SortSideMenu(Sortable.sequence(mainUL)); }});
    
}

function SortSideSubMenu(p_sideMenu)
{
    PageMethods.SortPages(p_sideMenu, CommonSucceededCallback ,UpdateElementCommonFailureCallback);
}
function SortSideMenu(p_sideMenu)
{
    PageMethods.SortPages(p_sideMenu, CommonSucceededCallback ,UpdateElementCommonFailureCallback);
}

function DeleteQuestionClient(p_questionID, p_questionContainerID)
{
    var isOk = confirm(MS_DELETE_QUESTION_CONFIRM);
    
    if (isOk == true)
    {
        PageMethods.DeleteQuestionAndAnswer(p_questionID, p_questionContainerID, DeleteElementSucceededCallback, UpdateElementCommonFailureCallback);
    }
    
    return isOk;
}

function DeleteProductClient(p_productID, p_containerID)
{
    var isOk = confirm(MS_DELETE_PRODUCT_CONFIRM);
    
    if (isOk == true)
    {
        PageMethods.DeleteProduct(p_productID, p_containerID, DeleteElementSucceededCallback, UpdateElementCommonFailureCallback);
    }
    
    return isOk;
}


function AddProductSubElementClient(p_elementID, p_listID)
{
    PageMethods.AddProductSubElement(p_elementID, p_listID, AddProductElementSucceededCallback, UpdateElementCommonFailureCallback);
}

function UpdateProductElementClient(p_propType, p_elementID, p_pId, p_viewPanelID, p_editPanelID, p_txtID, p_lblID)
{
    var txt = $get(p_txtID);
    
    // update server
    PageMethods.UpdateProductElement(p_propType,p_elementID,p_pId, p_viewPanelID, p_editPanelID, txt.value, p_txtID, p_lblID, UpdateTextElementSucceededCallback,UpdateElementCommonFailureCallback);
}


function SortElements(p_elementsList)
{
    PageMethods.SortElements(p_elementsList, SortElementSucceededCallback ,UpdateElementCommonFailureCallback);
}

function SortQAndAElementsClient(p_elementsList)
{
    PageMethods.SortQAndAElements(p_elementsList, SortElementSucceededCallback ,UpdateElementCommonFailureCallback);
}

function SortProductElementsClient(p_elementsList)
{
    PageMethods.SortProductElements(p_elementsList, SortElementSucceededCallback ,UpdateElementCommonFailureCallback);
}

function SortElementSucceededCallback()
{
    RemoveTinyMCE($get("elementsList"));
    tinyInit();
}

function CommonSucceededCallback()
{
}

function AddPageSucceededCallback(p_returnValue)
{
    var ulSideMenu = $get('ulSideMenu');
    
    ulSideMenu.innerHTML = ulSideMenu.innerHTML + p_returnValue;
    
    CreateSideMenuSortable();
}


//function AddPageClient(p_txtPageName, p_ddlParentPage, p_btnSavePageNameHidden)
//{
//    // validate form
//    Page_ClientValidate('ChoosePageName');
//    
//    if (Page_IsValid == true)
//    { 
//        var pageName = $get(p_txtPageName).value;
//       
//        var ddlParentPages = $get(p_ddlParentPage);
//        
//        var parentPageId = ddlParentPages[ddlParentPages.selectedIndex].value;
//       
//        var action = $get('txtAction').value;
//        
//        if (action == 'new')
//        {
//            PageMethods.AddPage(pageName, parentPageId, AddPageSucceededCallback ,UpdateElementCommonFailureCallback);
//        }
//        else
//        {
//            var pageID = $get('txtPageID').value;
//            var menuItemLinkID = $get('txtMenuItemLinkID').value;
//        
//            // set default action as 'new' again
//            $get('txtAction').value = 'new';
//            UpdatePageNameClient(pageID, pageName, menuItemLinkID, parentPageId);
//        }
//        
//        $get(p_txtPageName).value = "";
//        $get(p_btnSavePageNameHidden).click();
//    }
//}

function EditPagePopup(p_pageID, p_parentPageID, p_btnAddPage, p_txtPageTitle, p_ddlParentPages, p_menuItemLinkID, p_txtAction, p_txtMenuItemLinkID, p_txtPageID, p_ddlParentPageID)
{   
    var txtAction = $get(p_txtAction);
    txtAction.value = 'edit';
    
    var txtPageID = $get(p_txtPageID);
    txtPageID.value = p_pageID;

    var txtMenuItemLinkID = $get(p_txtMenuItemLinkID);
    txtMenuItemLinkID.value = p_menuItemLinkID;
   
    var ddlParentPageID = $get(p_ddlParentPageID);
    ddlParentPageID.value = p_parentPageID;

    var ddlParentPages = $get(p_ddlParentPages);
    for(var i=0; i < ddlParentPages.options.length; i++)
    {
        if(p_parentPageID == ddlParentPages.options[i].value)
        {
            ddlParentPages.options[i].selected = true;
            break;
        }
    }
    $get(p_txtPageTitle).value = $get(p_menuItemLinkID).innerHTML;
    $get(p_btnAddPage).click();
}

function DeletePageSucceededCallback(p_returnValue)
{
    var li = $get("item_" + p_returnValue);
        
    if (li.parentElement != undefined) // IE
    {
        li.parentElement.removeChild(li);
    }
    else // FireFox
    {
        li.parentNode.removeChild(li);
    }
    
    CreateSideMenuSortable();
}


//function UpdatePageNameSucceededCallback(p_returnValue)
//{
//    var lnkMenuItem = $get(p_returnValue.MenuItemLinkID);
//    lnkMenuItem.innerHTML = p_returnValue.NewPageName;

//    var newValue = '';
//    if(p_returnValue.ParentPageID != "-1")
//    {
//        newValue = "&parentpageid=" + p_returnValue.ParentPageID;
//    }
//    
//    var link = lnkMenuItem.href;
//    var start_index = link.indexOf("parentpageid");
//    
//    if(start_index != -1)
//    {
//       var tempLink = link.substr(start_index, link.length -  start_index);

//       var tempEndIndex = tempLink.indexOf('&');
//       if(tempEndIndex != -1)
//       {
//           tempLink = tempLink.substr(0, tempEndIndex);
//           lnkMenuItem.href = lnkMenuItem.href.replace(tempLink, newValue);

//       }
//       else
//       {
//          lnkMenuItem.href = lnkMenuItem.href.replace(tempLink, newValue);
//       }
//    }
//    else
//    {
//       lnkMenuItem.href = lnkMenuItem.href + newValue;
//    }
//    
//}

function DeletePageClient(p_pageID)
{
    if (confirm(MS_DELETE_PAGE_CONFIRM) == true)
    {
        PageMethods.DeletePage(p_pageID, DeletePageSucceededCallback, UpdateElementCommonFailureCallback);
    }
}

//function UpdatePageNameClient(p_pageID, p_newName, p_menuItemLinkID, p_parentPageID)
//{
//    PageMethods.UpdatePageName(p_pageID, p_newName, p_menuItemLinkID, p_parentPageID, UpdatePageNameSucceededCallback, UpdateElementCommonFailureCallback);
//}


function tinyInit()
{
    
//    tinyMCE_GZ.init({
//        plugins : 'style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras',
//        themes : 'advanced',
//        languages : 'he',
//        disk_cache : false,
//        debug : false
//    });

    tinyMCE.init({
        mode : "textareas",
        editor_selector : "mceEditor",
        theme : "advanced",
        directionality : "rtl",
        plugins : 'style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,imagemanager,filemanager',
        theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect",
        theme_advanced_buttons2 : "bold,italic,underline,cleanup,removeformat,forecolor,backcolor,|,undo,redo,link,unlink,anchor,|,ltr,rtl,media,insertimage,insertfile",
        theme_advanced_buttons3 : "code,preview,cut,copy,paste,pasteword",
        theme_advanced_buttons2_add : "",
	    theme_advanced_buttons3_add : "tablecontrols",
	    paste_auto_cleanup_on_paste : true,
	    table_styles : "Header 1=header1;Header 2=header2;Header 3=header3",
	    table_cell_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Cell=tableCel1",
	    table_row_styles : "Header 1=header1;Header 2=header2;Header 3=header3;Table Row=tableRow1",	
	    table_cell_limit : 100,
	    table_row_limit : 5,
	    table_col_limit : 5,
        language : "he",
        width:"500px"
    });

}

function ShowLeadDetailsClient(p_leadID, p_tdLeadDetailsID)
{
    PageMethods.ShowLeadDetails(p_leadID, p_tdLeadDetailsID, ShowLeadDetailsSucceededCallback, CommonFailureCallback);
}

function ShowLeadDetailsSucceededCallback(p_returnValue)
{
    var tdLeadDetails = $get(p_returnValue.TdLeadDetailsID);
    
    tdLeadDetails.innerHTML = p_returnValue.LeadDetailsHTML;
}

function ShowLeadDetailsPanelClient(p_leadID, p_panelLeadDetailsID)
{

    PageMethods.ShowLeadDetailsPanel(p_leadID, p_panelLeadDetailsID, ShowLeadDetailsPanelSucceededCallback, CommonFailureCallback);
}

function ShowLeadDetailsPanelSucceededCallback(p_returnValue)
{
    var panelLeadDetails = $get(p_returnValue.PanelLeadDetailsID);
    
    if (panelLeadDetails.parentElement != undefined) // IE
    {
        panelLeadDetails = panelLeadDetails.parentElement;
    }
    else // FireFox
    {
        panelLeadDetails = panelLeadDetails.parentNode;
    }
    
    panelLeadDetails.innerHTML = p_returnValue.LeadDetailsHTML;
}


function CommonFailureCallback(p_error)
{
   // Alert user to the error.
   alert(p_error.get_message());
}    

function ToggleVisible(p_panelID)
{
    var panel = $get(p_panelID);
    
    if (panel.style.display == "none")
    {
        Effect.Appear(p_panelID);
    }
    else
    {
        Effect.Fade(p_panelID);
    }
}

function UpdateSiteSEOClient(p_pageID, p_descriptionID, p_keywordsID, p_titleID)
{
    PageMethods.UpdateSEO(p_pageID, $get(p_descriptionID).value, $get(p_keywordsID).value, $get(p_titleID).value, UpdateSiteSEOSucceededCallback, CommonFailureCallback);
}

function UpdateSiteSEOSucceededCallback()
{
    ToggleVisible('divSEOPanel');
}