﻿// JScript File

var onChoose = null;
var onCancel = null;
var manager = false;
var editoridval = "";
var propidval = "";
var selectedtab = "";

function OpenSelector()
{
    manager = false;
    document.getElementById("icancelbutton").style.visibility="visible";
    document.getElementById("ichoosebutton").innerHTML = "&nbsp;Choose&nbsp;";
    OpenWindow("iselector.aspx?appid="+appid+"&editorid="+editoridval+"&selectedtab="+selectedtab);
}

function OpenManager()
{
    manager = true;
    document.getElementById("icancelbutton").style.visibility="hidden";
    document.getElementById("ichoosebutton").innerHTML = "&nbsp;&nbsp;Done&nbsp;&nbsp;";
    OpenWindow("iselector.aspx?appid="+appid+"&selectedtab=resources");
}

function OpenAppXMLEditor()
{
    manager = true;
    document.getElementById("icancelbutton").style.visibility="hidden";
    document.getElementById("ichoosebutton").innerHTML = "&nbsp;&nbsp;Done&nbsp;&nbsp;";
    OpenDialog("appxmleditor.aspx?appid="+appid);
    //setTimeout("MakeiFrameEditable()", 1000);
}

function OpenStyleCSSEditor()
{
    manager = true;
    document.getElementById("icancelbutton").style.visibility="hidden";
    document.getElementById("ichoosebutton").innerHTML = "&nbsp;&nbsp;Done&nbsp;&nbsp;";
    OpenDialog("stylecsseditor.aspx?appid="+appid);
    //setTimeout("MakeiFrameEditable()", 1000);
}

function OpenLocalizationEditor()
{
    manager = true;
    document.getElementById("icancelbutton").style.visibility="hidden";
    document.getElementById("ichoosebutton").innerHTML = "&nbsp;&nbsp;Done&nbsp;&nbsp;";
    OpenDialog("localizationeditor.aspx?appid="+appid);
    //setTimeout("MakeiFrameEditable()", 1000);
}

function OpenDialog(pagesrc)
{
    manager = true;
    onChoose = null;
    onCancel = null;
    document.getElementById("icancelbutton").style.visibility="hidden";
    document.getElementById("ichoosebutton").innerHTML = "&nbsp;Close&nbsp;";
    OpenWindow(pagesrc);
}

function OpenWindow(pagesrc)
{
       var toplayer = document.getElementById("toplayer");
   	   var lolbuilder = document.getElementById("iselector");
   	   toplayer.style.visibility="visible";
       lolbuilder.style.visibility="visible";
   	   toplayer.style.display="block";
       lolbuilder.style.display="block";       
       var iHeight = (document.height !== undefined) ? document.height : document.body.offsetHeight;
       var iWidth = (document.width !== undefined) ? document.width : document.body.offsetWidth;
       var winHeight;
       
        // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
         if (typeof window.innerWidth != 'undefined')
         {
              winHeight = window.innerHeight;
         }         
        // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
         else if (typeof document.documentElement != 'undefined'
             && typeof document.documentElement.clientWidth !=
             'undefined' && document.documentElement.clientWidth != 0)
         {
               winHeight = document.documentElement.clientHeight;
         }
       
   	   toplayer.style.width=iWidth+"px";
   	   toplayer.style.height=iHeight+"px";
   	           
       lolbuilder.style.left = (iWidth/2 - 370)+"px";       
       lolbuilder.style.top = (winHeight/2 - 250/*document.body.scrollTop + 120*/)+"px";
       
       if (inFacebook)
       {
            //FB.CanvasClient.scrollTo(0,0);
       }
       else
       {
            //scroll(0,0);
       }
       
       window.onresize = SelectorOnResize;
       document.getElementById("iselectorframe").src = pagesrc;
}
  

  
function SelectorOnResize()
{
       var toplayer = document.getElementById("toplayer");
   	   var lolbuilder = document.getElementById("iselector");
       var iHeight = (document.height !== undefined) ? document.height : document.body.offsetHeight;
       var iWidth = (document.width !== undefined) ? document.width : document.body.offsetWidth;
   	   
   	   var winHeight;
       
        // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
         if (typeof window.innerWidth != 'undefined')
         {
              winHeight = window.innerHeight;
         }         
        // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
         else if (typeof document.documentElement != 'undefined'
             && typeof document.documentElement.clientWidth !=
             'undefined' && document.documentElement.clientWidth != 0)
         {
               winHeight = document.documentElement.clientHeight;
         }
   	   
   	   toplayer.style.width=iWidth+"px";
   	   toplayer.style.height=iHeight+"px";
       lolbuilder.style.left = (iWidth/2 - 370)+"px";
       lolbuilder.style.top = (winHeight/2 - 250)+"px";
}  
  
function ChooseSelection()
{       //alert(window.iselectorframe);
        if (!manager && window.iselectorframe.selectedresourcename == "")
        {
            alert("Please select a Resource item then click Choose");
            return;
        }   
        var toplayer = document.getElementById("toplayer");
   	    var iselector = document.getElementById("iselector");
   	    toplayer.style.visibility="hidden";
        iselector.style.visibility="hidden";
   	    toplayer.style.display="none";
        iselector.style.display="none"; 
        window.onresize = null;
        if (onChoose != null)
        {
            onChoose(window.iselectorframe.selectedresourcename);
        }
        //var iparams = window.iselector.iparams;
        //PublishOnServer(iparams);	
}

function CancelSelection()
{
    var toplayer = document.getElementById("toplayer");
   	var iselector = document.getElementById("iselector");
   	toplayer.style.visibility="hidden"; 
    iselector.style.visibility="hidden";  
    window.onresize = null;  	 
   	toplayer.style.display="none";
    iselector.style.display="none";
    if (onCancel != null)
    {
        onCancel();
    }     	
}

function PublishOnServer(inparams)
{
    var params = "ownerid="+ownerid;
    params += "&userid="+userid;
    params += "&lolid="+getRandomLolId();
    if (onhomepage)
    {
        params += "&onhomepage=true";
    }
    else
    {
        params += "&onhomepage=false"
    }
    
    params += "&"+inparams;                  

    document.location="publish.ashx?"+params;
}

function getRandomChar()
{
	var chars = "abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQURSTUVWXYZ";
	return chars.substr( getRandomNumber(52), 1 );
}

function getRandomLolId()
{
	var str = "";
	for(var i = 0; i < 24; i++)
	{
		str += getRandomChar();
	}
	return str;
}

function selectresourceitem(rowid, rname)
{
    if (selectedrowid != "")
    {
        document.getElementById(selectedrowid).className="resourceitem";
    }
    selectedrowid = rowid;
    selectedresourcename = rname;
    document.getElementById(rowid).className="selectedresourceitem";
    
    if (rname.length>4)
    {
      var fext = rname.substring(rname.length-4,rname.length);
      fext = fext.toLowerCase();
      
      if (fext == ".png" || fext==".jpg" || fext == ".gif")
      { 
        var imgsrc = apprelurl+"/"+rname+"?guid="+getRandomID();
        document.getElementById("previewimg").style.visibility = "visible"; 
        document.getElementById("previewimg").src = imgsrc;
      }
      else
      {
        document.getElementById("previewimg").style.visibility = "hidden";    
      }
    }
}

function setStatus(message)
{
    document.getElementById("errormessage").innerHTML = message;
}

function RemoveSelectedResource()
{
    location="resourcedelete.aspx?appid="+appid+"&resourceid="+selectedresourcename;
}

var arrCheckedFile = new Array();

function RemoveCheckedResource()
{
    if(arrCheckedFile.length <= 0)
    {
        alert("Please, select a file to delete.");
        return;
    }
    else
    {
        var answer = confirm("Are you sure you want to delete selected files?");
        if(answer)
        {
            var strArr = "";
            for(var i = 0; i < arrCheckedFile.length; i++)
            {
                var check = "<check file=\"" + encodeURIComponent(arrCheckedFile[i].filename) + "\" id=\"" + encodeURIComponent(arrCheckedFile[i].checkid) + "\"/>";
                strArr += check;
            }
        	makePOSTRequestSync("resourcesdelete.ashx?appid=" + appid, strArr, DeleteFileReq );
        }
    }
}

function DeleteFileReq(response)
{
   if (response == "OK")
   {
       window.location.href="iselector.aspx?appid=" + appid + "&selectedtab=resources";
   }
   else
   {
       alert("Error deleting file. "+response);
   }   
}

function CheckedFileForDelete(filename, checkboxdelid)
{
    var inputcheck = document.getElementById(checkboxdelid);
    if(filename == "allfiledelete")
    {
        var i = 0;
        while(1)
        {
            var cchecked = document.getElementById('checkboxdelete'+i);
            if(cchecked)
                cchecked.checked = inputcheck.checked;
            else
                break;
            

            if(inputcheck.checked == 1)
            {
                var newindex = arrCheckedFile.length;
                var newitemobj = new Object();
                newitemobj.filename = cchecked.value;
                newitemobj.checkid = 'checkboxdelete'+i;
                arrCheckedFile[newindex] = newitemobj;   
            }
            else
            {
                var iCount = arrCheckedFile.length;
                for(var ii = 0; ii < iCount; ii++)
                {
                    if(arrCheckedFile[ii].checkid == 'checkboxdelete'+i)
                    {
                        arrCheckedFile.splice(ii,1);
                        break;
                    }
                }
            } 
            i++;
        }
    }
    else
    {
        if(inputcheck.checked == 1)
        {
            var newindex = arrCheckedFile.length;
            var newitemobj = new Object();
            newitemobj.filename = filename;
            newitemobj.checkid = checkboxdelid;
            arrCheckedFile[newindex] = newitemobj;   
        }
        else
        {
            var iCount = arrCheckedFile.length;
            for(var i = 0; i < iCount; i++)
            {
                if(arrCheckedFile[i].checkid == checkboxdelid)
                {
                    arrCheckedFile.splice(i,1);
                }
            }
        } 
    }
}

function ChooseImage(editorid, propid)
{
    editoridval = editorid;
    propidval = propid;
    
//    if (propid == "body|background-image")
//    {
//        selectedtab = "gallery";
//    }
    
    OpenSelector();
    onChoose = ChooseDone;
    
    // when a background-image is chosen then background-color is removed
    if (propid == "body|background-image")
    {
        document.getElementById("body|background-color").value = "";
    }
}
function ChooseDone(filename)
{
    document.getElementById(propidval).value = filename;
}


function ChooseAppIcon()
{
    manager = true;
    document.getElementById("icancelbutton").style.visibility="hidden";
    document.getElementById("ichoosebutton").innerHTML = "&nbsp;&nbsp;Done&nbsp;&nbsp;";
    OpenWindow("iselector.aspx?appid="+appid+"&editorid=appicon&selectedtab=gallery");
    onChoose = ChooseAppIconDone;
}
function ChooseAppIconDone(filename)
{
    document.getElementById("appiconimg").src = apprelurl+"/icon.png?guid="+getRandomID();
}

function NewPage()
{
    manager = true;
    onChoose = NewPageDone;
    onCancel = null;
    document.getElementById("icancelbutton").style.visibility="hidden";
    document.getElementById("ichoosebutton").innerHTML = "&nbsp;Close&nbsp;";
    OpenWindow("pagenew.aspx?appid="+appid);
}

function NewPageDone(filename)
{
    if(undefined == filename)
        return;
    selectedfilename = filename+".html";
    ShowPages(filename);
    NavigateTo(selectedfilename);
}

function DeleteSelectedPage()
{
    if (selectedfilename=="")
    {
        alert("Please select a page to delete");
        return;
    }   
    if (selectedfilename=="tab1.html" || selectedfilename=="tab2.html" || selectedfilename=="tab3.html" || selectedfilename=="tab4.html" )
    {
        alert("Tab pages can not be deleted.");
        return;
    }
    manager = true;
    onChoose = DeletePageDone;
    onCancel = null;
    document.getElementById("icancelbutton").style.visibility="hidden";
    document.getElementById("ichoosebutton").innerHTML = "&nbsp;Close&nbsp;";
    OpenWindow("pagedelete.aspx?appid="+appid+"&pageid="+selectedfilename);
}

function DeletePageDone()
{
    selectedfilename = "tab1.html";
    ShowPages("tab1");
    NavigateTo("tab1.html");
    SelectTab1();
}

function DuplicateSelectedPage()
{
    if (selectedfilename=="")
    {
        alert("Please select a page to duplicate");
        return;
    }   
    
    manager = true;
    onChoose = DuplicatePageDone;
    onCancel = null;
    document.getElementById("icancelbutton").style.visibility="hidden";
    document.getElementById("ichoosebutton").innerHTML = "&nbsp;Close&nbsp;";
    OpenWindow("pageduplicate.aspx?appid="+appid+"&pageid="+selectedfilename);
}

function DuplicatePageDone()
{
    
}


function RenameSelectedPage()
{
    if (selectedfilename=="")
    {
        alert("Please select a page to rename");
        return;
    }   
    
    manager = true;
    onChoose = RenamePageDone;
    onCancel = null;
    document.getElementById("icancelbutton").style.visibility="hidden";
    document.getElementById("ichoosebutton").innerHTML = "&nbsp;Close&nbsp;";
    OpenWindow("pagerename.aspx?appid="+appid+"&pageid="+selectedfilename);
}

function RenamePageDone()
{
    
}

var colorpicker = null;
var targetid = null;

function ChooseColor(editorid)
{
    
    targetid = editorid;

    var editor = document.getElementById(targetid);
    var color = editor.value.replace(/#/, '');
    
    
    var container = document.getElementById("colorpicker");
    
    container.style.left = ((screen.width - 440) / 2).toString() + "px";
    container.style.top = ((screen.height - 540) / 2).toString() + "px";
    
    if (colorpicker == null)
    {
        colorpicker = new Refresh.Web.ColorPicker('cp1', {startHex: '3F8280', startMode: 'h'});
    }  
    
    colorpicker.setHEX(color);
    
    // when a background-color is chosen then background-image is removed
    if (targetid == "body|background-color")
    {
        document.getElementById("body|background-image").value = "";
    }
    
    container.style.visibility = "visible";
}

function CloseColorPicker()
{
    document.getElementById("colorpicker").style.visibility = "hidden";
}

function ColorChosen()
{
    var hexcolor = colorpicker.getHEX();
    var input = document.getElementById(targetid);
    input.value = '#' + hexcolor;
    
    //input.style.backgroundColor = input.value;
    //input.style.color = (parseInt(hexcolor, 16) > 0xffffff/2) ? '#000000' : '#FFFFFF';
    
    document.getElementById("colorpicker").style.visibility = "hidden";
    targetid = null;
    if (ApplyPropertyChanges)
        ApplyPropertyChanges();
}

function ShowResourcesTab()
{
    setStatus("");
    document.getElementById("gallerydiv").style.display = "none";
    document.getElementById("resourcesdiv").style.display = "block";
    document.getElementById("uploaddiv").style.display = "none";
    document.getElementById("zipuploaddiv").style.display = "none";
    document.getElementById("searchimagesdiv").style.display = "none";
    document.getElementById("gallerytab").className = "prtab";
    document.getElementById("resourcestab").className = "prtabS";
    document.getElementById("uploadtab").className = "prtab";
    document.getElementById("zipuploadtab").className = "prtab";
    document.getElementById("searchimagestab").className = "prtab";
}

function ShowGalleryTab()
{
    setStatus("");
    document.getElementById("gallerydiv").style.display = "block";
    document.getElementById("resourcesdiv").style.display = "none";
    document.getElementById("uploaddiv").style.display = "none";
    document.getElementById("zipuploaddiv").style.display = "none";    
    document.getElementById("searchimagesdiv").style.display = "none";
    document.getElementById("gallerytab").className = "prtabS";
    document.getElementById("resourcestab").className = "prtab";
    document.getElementById("uploadtab").className = "prtab";
    document.getElementById("zipuploadtab").className = "prtab";
    document.getElementById("searchimagestab").className = "prtab";
    Deselect();
}

function ShowUploadTab()
{
    setStatus("");
    document.getElementById("gallerydiv").style.display = "none";
    document.getElementById("resourcesdiv").style.display = "none";
    document.getElementById("uploaddiv").style.display = "block";
    document.getElementById("zipuploaddiv").style.display = "none";
    document.getElementById("searchimagesdiv").style.display = "none";
    document.getElementById("gallerytab").className = "prtab";
    document.getElementById("resourcestab").className = "prtab";
    document.getElementById("uploadtab").className = "prtabS";
    document.getElementById("zipuploadtab").className = "prtab";
    document.getElementById("searchimagestab").className = "prtab";
    Deselect();
    document.getElementById("uloadformselectedtab").value = "upload";
}

function ShowZipUploadTab()
{
    setStatus("");
    document.getElementById("gallerydiv").style.display = "none";
    document.getElementById("resourcesdiv").style.display = "none";
    document.getElementById("uploaddiv").style.display = "none";
    document.getElementById("zipuploaddiv").style.display = "block";
    document.getElementById("searchimagesdiv").style.display = "none";
    document.getElementById("gallerytab").className = "prtab";
    document.getElementById("resourcestab").className = "prtab";
    document.getElementById("uploadtab").className = "prtab";
    document.getElementById("zipuploadtab").className = "prtabS";
    document.getElementById("searchimagestab").className = "prtab";
    Deselect();
    document.getElementById("uloadformselectedtab").value = "zipupload";
}

function Deselect()
{
    if (selectedrowid != "")
    {
        document.getElementById(selectedrowid).className="resourceitem";
    }
    selectedrowid = "";
    selectedresourcename = "";
    if(document.getElementById("removeselectedbutton")) {
        document.getElementById("removeselectedbutton").style.visibility="hidden";
    }
    document.getElementById("previewimg").style.visibility="hidden";
}
var selectedimgid = "";
function SelectGalleryImage(imgid, imgname)
{
    
    var tdelement = document.getElementById(imgid);
    if (selectedimgid != "")
    {
        document.getElementById(selectedimgid).style.border="solid 1px #eee";
    }
    
    tdelement.style.border = "solid 1px blue";
    selectedimgid = imgid;
    
    document.getElementById("itemname").value = imgname;
    document.getElementById("itemid").value = imgid;
    document.getElementById("addtoresbutton").style.visibility = "visible";
}

function ShowSearchImgTab()
{
    setStatus("");
    document.getElementById("gallerydiv").style.display = "none";
    document.getElementById("resourcesdiv").style.display = "none";
    document.getElementById("uploaddiv").style.display = "none";
    document.getElementById("zipuploaddiv").style.display = "none";
    document.getElementById("searchimagesdiv").style.display = "block";
    document.getElementById("gallerytab").className = "prtab";
    document.getElementById("resourcestab").className = "prtab";
    document.getElementById("uploadtab").className = "prtab";
    document.getElementById("zipuploadtab").className = "prtab";
    document.getElementById("searchimagestab").className = "prtabS";
}

function OnGoogleLoad() {
    var searchControl = new google.search.SearchControl(null);
    var imageSearch = new google.search.ImageSearch();
    var searchOptions = new google.search.SearcherOptions();
    searchOptions.setImageResultsTbHeight(100);
    searchControl.addSearcher(imageSearch/*, searchOptions*/);
    searchControl.setResultSetSize(google.search.Search.LARGE_RESULTSET);
    var drawOptions = new google.search.DrawOptions();
    drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);
    searchControl.draw(document.getElementById('searchcontrol'), drawOptions);    
    searchControl.setOnKeepCallback(this, OnGoogleCopyImage, "Add To Resources");
}

function OnGoogleCopyImage(result)
{
    var imageurl = result.url;
    var imagenamesplit = imageurl.split("/");
    var imagename = imagenamesplit[imagenamesplit.length - 1];
    makePOSTRequest("saveGimage.ashx?imgname="+imagename+"&imgurl="+imageurl+"&appurl="+apprelurl, "", GImageSavedCallback);
}

function GImageSavedCallback(response)
{   
    location = "iselector.aspx?appid="+appid+"&selectedtab=resources&selectedname="+response;
}

function getRandomNumber(range)
{
	return Math.floor(Math.random() * range);
}

function getRandomChar()
{
	var chars = "abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQURSTUVWXYZ";
	return chars.substr( getRandomNumber(52), 1 );
}

function getRandomID()
{
	var str = "";
	for(var i = 0; i < 24; i++)
	{
		str += getRandomChar();
	}
	return str;
}

function setNewsfile(fileid, checkboxid)
{
    var cchecked = document.getElementById(checkboxid).checked;
    if(fileid == "allitems")
    {
       var ccheckedAll = document.getElementById(checkboxid).checked;
        var i = 0;

        while(1)
        {
            var cchecked = document.getElementById('checkbox'+i);
            if(cchecked)
                cchecked.checked = ccheckedAll;
            else
                break;
            i++;
        }
       makePOSTRequest("setnewsfile.ashx?appid="+appid+"&allitemsync=true"+"&cchecked="+(ccheckedAll?"yes":"no"), "", setNewsfileCallback);
    }
    else
       makePOSTRequest("setnewsfile.ashx?appid="+appid+"&fileid="+fileid+"&cchecked="+(cchecked?"yes":"no"), "", setNewsfileCallback);
}

function setNewsfileCallback(response)
{
    if (response=="OK")
    {
        //document.getElementById('checkbox'+i).checked;
    }
    else
    {
        alert(response);
    }
}

function MakeiFrameEditable() {
    var editor = document.getElementById("iselectorframe");
    editor.scrolling = "yes";
  
    if (editor.contentDocument != null)
    {
      editor.contentDocument.designMode = "on";
    }
    else
    {
      alert(editor.contentWindow.document.designMode);
      editor.contentWindow.document.designMode = "On";
    }
    editor.focus();
}
