var conf_URL='http://www.drgourmet.com/';
//for catch only;
var store=[];
var MAXINDEX=10;
var arrIndex=0;
var curPosition=-1;
//

function isJsEnabled() {
  if (typeof document.jsEnabled == 'undefined') {
    // Note: ! casts to boolean implicitly.
    document.jsEnabled = !(
     !document.getElementsByTagName ||
     !document.createElement        ||
     !document.createTextNode       ||
     !document.documentElement      ||
     !document.getElementById);
  }
  return document.jsEnabled;
}


if (isJsEnabled()) {
  document.documentElement.className = 'js';
}

if (typeof XMLHttpRequest == 'undefined') {
  XMLHttpRequest = function () {
    var msxmls = ['MSXML3', 'MSXML2', 'Microsoft']
    for (var i=0; i < msxmls.length; i++) {
      try {
        return new ActiveXObject(msxmls[i]+'.XMLHTTP')
      }
      catch (e) { }
    }
    throw new Error("No XML component installed!");
  }
}

function HTTPGet(uri, callbackFunction, callbackParameter) {
  var xmlHttp = new XMLHttpRequest();
  var bAsync = true;
  if (!callbackFunction) {
    bAsync = false;
  }
  xmlHttp.open('GET', uri, bAsync);
  xmlHttp.send(null);

  if (bAsync) {
    if (callbackFunction) {
      xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4) {
          callbackFunction(xmlHttp.responseText, xmlHttp, callbackParameter);
        }
      }
    }
    return xmlHttp;
  }
  else {
    return xmlHttp.responseText;
  }
}


function HTTPPost(uri, object, callbackFunction, callbackParameter) {
  var xmlHttp = new XMLHttpRequest();
  var bAsync = true;
  if (!callbackFunction) {
    bAsync = false;
  }
  xmlHttp.open('POST', uri, bAsync);

  var toSend = '';
  if (typeof object == 'object') {
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    for (var i in object) {
      toSend += (toSend ? '&' : '') + i + '=' + encodeURIComponent(object[i]);
    }
  }
  else {
    toSend = object;
  }
  xmlHttp.send(toSend);

  if (bAsync) {
    if (callbackFunction) {
      xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4) {
          callbackFunction(xmlHttp.responseText, xmlHttp, callbackParameter);
        }
      }
    }
    return xmlHttp;
  }
  else {
    return xmlHttp.responseText;
  }
}


function redirectFormButton(uri, button, handler) {
  // (Re)create an iframe to target.
  createIframe();

  // Trap the button
  button.onmouseover = button.onfocus = function() {
    button.onclick = function() {
      // Prepare variables for use in anonymous function.
      var button = this;
      var action = button.form.action;
      var target = button.form.target;

      // Redirect form submission
      this.form.action = uri;
      this.form.target = 'redirect-target';

      handler.onsubmit();

      // Set iframe handler for later
      window.iframeHandler = function () {
        var iframe = $('redirect-target');
        // Restore form submission
        button.form.action = action;
        button.form.target = target;

        // Get response from iframe body
        try {
          response = (iframe.contentWindow || iframe.contentDocument || iframe).document.body.innerHTML;
          // Firefox 1.0.x hack: Remove (corrupted) control characters
          response = response.replace(/[\f\n\r\t]/g, ' ');
          if (window.opera) {
            // Opera-hack: it returns innerHTML sanitized.
            response = response.replace(/&quot;/g, '"');
          }
        }
        catch (e) {
          response = null;
        }

        $('redirect-target').onload = null;
        $('redirect-target').src = 'about:blank';

        response = parseJson(response);
        // Check response code
        if (response.status == 0) {
          handler.onerror(response.data);
          return;
        }
        handler.oncomplete(response.data);
      }

      return true;
    }
  }
  button.onmouseout = button.onblur = function() {
    button.onclick = null;
  }
}


function addLoadEvent(func) {
  var oldOnload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  }
  else {
    window.onload = function() {
      oldOnload();
      func();
    }
  }
}


function addSubmitEvent(form, func) {
  var oldSubmit = form.onsubmit;
  if (typeof oldSubmit != 'function') {
    form.onsubmit = func;
  }
  else {
    form.onsubmit = function() {
      return oldSubmit() && func();
    }
  }
}


function absolutePosition(el) {
  var sLeft = 0, sTop = 0;
  var isDiv = /^div$/i.test(el.tagName);
  if (isDiv && el.scrollLeft) {
    sLeft = el.scrollLeft;
  }
  if (isDiv && el.scrollTop) {
    sTop = el.scrollTop;
  }
  var r = { x: el.offsetLeft - sLeft, y: el.offsetTop - sTop };
  if (el.offsetParent) {
    var tmp = absolutePosition(el.offsetParent);
    r.x += tmp.x;
    r.y += tmp.y;
  }
  return r;
};

function dimensions(el) {
  return { width: el.offsetWidth, height: el.offsetHeight };
}


function hasClass(node, className) {
  if (node.className == className) {
    return true;
  }
  var reg = new RegExp('(^| )'+ className +'($| )')
  if (reg.test(node.className)) {
    return true;
  }
  return false;
}


function addClass(node, className) {
  if (hasClass(node, className)) {
    return false;
  }
  node.className += ' '+ className;
  return true;
}


function removeClass(node, className) {
  if (!hasClass(node, className)) {
    return false;
  }
  // Replaces words surrounded with whitespace or at a string border with a space. Prevents multiple class names from being glued together.
  node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className);
  return true;
}


function toggleClass(node, className) {
  if (!removeClass(node, className) && !addClass(node, className)) {
    return false;
  }
  return true;
}


function eregReplace(search, replace, subject) {
  return subject.replace(new RegExp(search,'g'), replace);
}


function removeNode(node) {
  if (typeof node == 'string') {
    node = $(node);
  }
  if (node && node.parentNode) {
    return node.parentNode.removeChild(node);
  }
  else {
    return false;
  }
}


function stopEvent(event) {
  if (event.preventDefault) {
    event.preventDefault();
    event.stopPropagation();
  }
  else {
    event.returnValue = false;
    event.cancelBubble = true;
  }
}


function parseJson(data) {
  if (data.substring(0,1) != '{') {
    return { status: 0, data: data.length ? data : 'Unspecified error' };
  }
  return eval('(' + data + ');');
}


function createIframe() {
  // Delete any previous iframe
  deleteIframe();
  // Note: some browsers require the literal name/id attributes on the tag,
  // some want them set through JS. We do both.
  window.iframeHandler = function () {};
  var div = document.createElement('div');
  div.id = 'redirect-holder';
  div.innerHTML = '<iframe name="redirect-target" id="redirect-target" class="redirect" onload="window.iframeHandler();"></iframe>';
  var iframe = div.firstChild;
  with (iframe) {
    name = 'redirect-target';
    setAttribute('name', 'redirect-target');
    id = 'redirect-target';
  }
  with (iframe.style) {
    position = 'absolute';
    height = '1px';
    width = '1px';
    visibility = 'hidden';
  }
  document.body.appendChild(div);
}


function deleteIframe() {
  var holder = $('redirect-holder');
  if (holder != null) {
    removeNode(holder);
  }
}


function $(id) {
  return document.getElementById(id);
}

function selectObject(name,opts)
{
    var selectf=null;
    var i=0;
    var soption=null;
    var table=null;
    var query_str=null;
    var res=null;
    selectf=document.createElement('select');
    selectf.id='id_'+name;
    selectf.name=name;
    selectf.id='subtpl_id';
    addClass(selectf,'class_'+name);
    for(var prop in opts)
    {

        soption=new Option(opts[prop],prop);
        selectf.options[i++]=soption;
    }

    selectf.onchange=function(){
      loadCorresPondingData();
      
    }
    
    return selectf;
}


function loadCorresPondingData()
{
    var tpl_sub=$('template_name_id_1');
    if(tpl_sub){
      tpl_sub.value=$('subtpl_id').options[$('subtpl_id').selectedIndex].text;
    }
    page_id=$('subtpl_id').options[$('subtpl_id').selectedIndex].value;
      var sel=$('id_templete_type');
      table='tbl_'+sel.options[sel.selectedIndex].value;
      query_str='action=pick_body&id='+page_id+'&table='+table;
      res=HTTPGet(conf_URL+'admin/sub_template_creator.php?'+query_str);
      oEdit1.loadHTML(res);

}
function test()
{

    var obj=new Object();
    var res='';
    var f=null;
    var ff=null;
    //obj.val1='text1';
    //obj.val2='text2';
    //obj.val3='text3';
    //obj.val4='text4';
    res=HTTPGet(conf_URL+'admin/sub_template_creator.php?action=sel_data&id=tbl_left');
    obj=createObject(res);
    
  f=selectObject('selName',obj);
  ff=document.getElementById('test');
  ff.appendChild(f);
    

}

function createObject(str)
{
    var arr=null;
    var obj=null;
    var i=0;
    arr=str.split("&");
    obj=new Object();
    for(i=0;i<arr.length;i++)
    {
        arr1=arr[i].split("=");
        obj[arr1[0]]=arr1[1];
    }
    return obj;
}

function doAction(a)
{
    var id=null;
    var id_editor=null;
    
    id=$('sel_template_pages');
    //removeChild(id);
    id_editor=$('id_editor_container');
    
    if($('layer_id1'))
    {
        removeNode($('layer_id1'));
    }
    
    if(a.value=='add')
    {
        $('id_submit').value="    ADD    ";
        crrateTextBox();
        oEdit1.loadHTML('');

    }
    else if(a.value=='edit')
    {
        $('id_submit').value="   Edit   ";
        var sel=$('id_templete_type');
        pagepicker(sel);
        
        //loadCorresPondingData();
    }
    else if(a.value=='delete')
    {
        $('id_submit').value=" DELETE ";
        id=$('template_name_id');
        if(id!=null)
        {
            removeChild(id.parentElement);
            removeNode(id);
         }
         
        var sel=$('id_templete_type');
        //pagepicker(sel);
        //loadCorresPondingData();
        //id_editor.setAttribute('style',"visibilty: hidden;");

    }
}

//call when onchange of type action select box

function pagepicker(a)
{

    var opt=null;
    var i=0;
    var chk=null;
    var val=null;
    var res=null;
    var obj=null;
    var dd=null;
    var id=null;
    var f=null;
    var txtBox=null;
    opt=document.all('id_action_type');
 for(i=0;i<opt.length;i++)
 {
   if(opt[i].checked)
   {
     chk=opt[i].value;
     break;
   }
 }
 if(chk!='add')
    {
        if(a.options[a.selectedIndex].value!=0)
        {
            val=a.options[a.selectedIndex].value;
            val="tbl_"+val;
            res=HTTPGet(conf_URL+'admin/sub_template_creator.php?action=sel_data&id='+val);
            obj=createObject(res);
            f=selectObject('template_id',obj);
            id=$('sel_template_pages');
            removeChild(id);
            dd=decorateObject(f,"Sub Template");
            id.appendChild(dd);
            if(chk=='edit')
            {
                if($('layer_id1'))
                {
                  removeNode($('layer_id1'));
                }
                var txtBox=document.createElement('input');
                txtBox.type='text';
                txtBox.name="template_name";
                txtBox.id="template_name_id_1";
                addClass(txtBox,'class_textbox');
                id.appendChild(decorateObject1(txtBox,'Template Name'));
            }
            loadCorresPondingData();
        }
    }
    
    if(chk=='add')
    {
      crrateTextBox();
    }
    

}
function crrateTextBox()
{
        txtBox=document.createElement('input');
        txtBox.type='text';
        txtBox.name="template_name";
        txtBox.id="template_name_id";
        addClass(txtBox,'class_textbox');
        id=$('sel_template_pages');
        removeChild(id);
        dd=decorateObject(txtBox,"Templete Name");
        id.appendChild(dd);
}

function decorateObject(obj,title)
{

    var div=null;
    var span=null;
    if($('layer_id'))
    {
      removeNode($('layer_id'));
    }
    div=document.createElement('div');
    div.id='layer_id';
    div.div="left";
    span=document.createElement('span');
    span.innerHTML=title+":";
    div.appendChild(span);
    div.appendChild(obj);
  
    return div;
}

function decorateObject1(obj,title)
{

    var div=null;
    var span=null;
    if($('layer_id1'))
    {
      removeNode($('layer_id1'));
    }
    div=document.createElement('div');
    div.id='layer_id1';
    span=document.createElement('span');
    span.innerHTML=title+":";
    div.appendChild(span);
    div.appendChild(obj);

    return div;
}

function removeChild(obj)
{
    var arr=null;
    var i=0;
    arr=obj.childNodes;
    for(i=0;i<arr.length;i++)
    {
        removeNode(arr[i]);
    }
}

function getSelData()
{
  var arr=['main','left','right','top','bottom'];
  var sel=null;
  var data=new Object();
  for(i=0;i<arr.length;i++)
  {
    sel=$('sel_'+arr[i]);
    if(sel.selectedIndex != "0")
    {
        data[arr[i]]=sel.options[sel.selectedIndex].value;
    }
    else
    {
        data[arr[i]]=0;
    }

  }
  return data;
  
}

function curSelAction()
{
  for(var i=0;i<document.frmEdit.opt.length;i++)
    {
        if(document.frmEdit.opt[i].checked)
        {
            return document.frmEdit.opt[i].value;
        }
    }
    return false;
}

function ff()
{
    getSelData();
}
function actionType()
{
    // return 0 for get
    // return 1 for edit
    var type=curSelAction();
    if(type==false)
    {
      return 0;
    }
    else
    {
      return 1;
    }
}


function getAndMerge()
{
  var query_str='';
  var selData=getSelData();
  for(var prop in selData)
  {
    if(selData['main']==0)
    {
      alert("Choose main first");
      return;
    }
    
    query_str+='&'+prop+"="+selData[prop];
  }
    query_str=query_str.substring(1);
    var uri=conf_URL+"admin/template_creator.php?action=merge&"+query_str;
    var res=HTTPGet(uri);
    curPosition=curPosition % MAXINDEX;
    store[++curPosition]=res;
    oEdit1.loadHTML(res);
  
}

function editSubTemplate(subTpl)
{
   var id_opt=$('id_opt');
  id_opt.value=subTpl

  var tab=subTpl;
  var sel=null;
  var query_str=null;
  if(tab !='merge')
  {
    sel=$('sel_'+tab);
    id=sel.options[sel.selectedIndex].value;
    if(id==0)
    {
      alert('Select a '+tab+' Template');
      return;
    }
    query_str="id="+id+'&tab='+tab;
    var uri=conf_URL+"admin/template_creator.php?action=edit&"+query_str;
    var res=HTTPGet(uri);
    curPosition=curPosition % MAXINDEX;
    if(subTpl=='main')
    {
        store[++curPosition]=oEdit1.getHTML();
         htmlFlag=false

    }
    else
    {
        store[++curPosition]=oEdit1.getHTMLBody();
         htmlFlag=true;
    }
       oEdit1.loadHTML(res);
       /*
    store[++curPosition]=oEdit1.getHTMLBody();
   // previous_step= oEdit1.getHTMLBody();
    oEdit1.loadHTML(res);
    */
    
  }
  else
  {

    var el=$('chkDefault_id_1001');
    if(!$('chkDefault_id_1001') || !$('txtDefault_id_1002'))
    {
        var el=document.createElement('input');
        el.type='checkbox';
        el.name='default';
        el.id='chkDefault_id_1001';
        $('default_select').appendChild(decorateObject(el,'Default'));
        var el1=document.createElement('input');
        el1.type='text';
        el1.name='tpl_name';
        el1.id='txtDefault_id_1002';
        $('default_select').appendChild(decorateObject(el1,'Template Name'));
    }
  }

}
function loadTemplate(sel)
{
    var id=sel.options[sel.selectedIndex].value;
    if(id==0)
    {
      alert('Choose Template');
      return;
    }
    var uri=conf_URL+"admin/page_creator.php?action=template&id="+id;
    res=HTTPGet(uri);
    curPosition=curPosition % MAXINDEX;
    store[++curPosition]=res;
    oEdit1.loadHTML(res);
}
var hndl=null;
function preview1()
{alert();
    /*
    var sel=$('template_name');
    var id=sel.options[sel.selectedIndex].value;
    if(id==0)
    {
      alert('Choose Template');
      return;
    }
    */
    if(!hndl)
    hndl=window.open(null,'window_show');


}
var glb_prev_color=null;
var glb_prev_color_object=null;

function loadPage(path)
{
    /*
    var id=sel.options[sel.selectedIndex].value;
    if(id==0)
    {
      alert('Choose a Page');
      return;
    }
    var uri=conf_URL+"admin/page_editor.php?action=page_edit&id="+id;
    res=HTTPGet(uri);
    curPosition=curPosition % MAXINDEX;
    store[++curPosition]=res;
    oEdit1.loadHTML(res);
    */
    
    var uri=conf_URL+"admin/page_editor.php?action=page_edit&id="+path;
    
    res=HTTPGet(uri);
   
    oEdit1.loadHTML(res);
    //var path_get=$('path_id');
    var path_set=$('hidden_path_id');
    path_set.value=path;
    var selected_file=$('selected_file')
    var indx=path.lastIndexOf('/');

    selected_file.innerHTML=path.substring(indx+1);
    
    if(glb_prev_color_object != null) glb_prev_color_object.style.color=glb_prev_color;
        glb_prev_color_object=event.srcElement;
    
    glb_prev_color=event.srcElement.style.color;
    
    event.srcElement.style.color="green";
    
    
    
    
}
function page_editor_delete_page()
{
    var path_set=$('hidden_path_id');
    
  if(confirm("Do you want to delete the file '"+path_set.value+"'?"))
  {
    var uri=conf_URL+"admin/page_editor.php?submit=Delete&path="+path_set.value;
    res=HTTPGet(uri);
    oEdit1.loadHTML('');
    //removeNode(cur_element_file_manager);
    window.location.reload( false );
  }
    
}
function validateForm(frm)
{
 var content= oEdit1.getHTMLBody();
 if(content.length<=0)
 {
   return false;
 }
  
}


function takeName()
{

    
   	frmEdit.Description.value = oEdit1.getHTML();
   	if(frmEdit.Description.value)
   	{
        showDialogBox('setTemplateName()');
   	    event.returnValue=false;
   	    $('id_opt').value='merge';
   	}
   	else
   	{
        event.returnValue=false;
        return false;

    }
  
  
}
function setTemplateName()
{
  
  if(ModalDialog.value=='Yes')
  {

    frmEdit.submit();
  }
  else
  {
    event.returnValue=false;
    frmEdit.Description.value
    return false;
  }

}


//var curRedo=0;
function Redo(a)
{
  if(curPosition<MAXINDEX-1 && curPosition<store.length-1)
  {
        oEdit1.loadHTML(store[++curPosition]);
  }
}
function Undo(a)
{
    if(curPosition>0)
  {
        oEdit1.loadHTML(store[--curPosition]);
  }
}
function page_creator_onload()
{
  loadTemplate($('template_id'));
}
function tplDelete(a)
{
    if(!confirm('Do you want to delete template ?'))
    {
      event.returnValue=false;
    }
}
function textF(a)
{
  //oEdit1.headContent='head123';
  oEdit1.putHTML('<html><head><title>cc</title></head><body>dddd123</body></html>');
}



