﻿  var theme, design;

  function increaseProgress(value) {
    var step = 0;
    if (value != null) {
      step = 40;
    } else {
      step = 20;
    }
    var p = document.getElementById('progressPosition');
    p.innerText = (parseInt(p.innerText.replace('%',''))+step)+'%';
    if (p.innerText == '100%') {
      location.reload();
    }
  }

  function startCreation(wr) {
      increaseProgress();
      copyData(wr);
      //writeTexts(wr);
  }
  
  function copyData(wr) {
      var dom = Cache.CreateDOM();
      var root = dom.appendChild(dom.createElement('copy-objects'));
      root = ObjectModel.addObjectElement(root, dom, 'sys:object:mypictures');
      root = ObjectModel.addObjectElement(root, dom, 'sys:object:mydocuments');
      root = ObjectModel.addObjectElement(root, dom, 'sys:object:myusers');
      root = ObjectModel.addObjectElement(root, dom, 'sys:object:mygems');
      root = ObjectModel.addObjectElement(root, dom, 'sys:object:mysubscribers');
      root = ObjectModel.addObjectElement(root, dom, 'sys:object:mynewsletters');
      root = ObjectModel.addObjectElement(root, dom, 'sys:object:myorders');
      if (typeof wr == 'string') {
        root = ObjectModel.addObjectElement(root, dom, wr, 'type=language;lang=hu-HU;caption=Magyar', true);
      } else {
          var children = wr.resultXML.selectNodes("/root/object/sub_object");
          var child;
          while (child = children.nextNode()) {
            root = ObjectModel.addObjectElement(root, dom, child.selectSingleNode('oID').text);
          }
      }    
      //alert(dom.xml);
      ObjectModel.CopyBatch(dom, userID, increaseProgress);
  }
  
  function writeTexts(wr) {
    var dom = Cache.CreateDOM();
    var root = dom.appendChild(dom.createElement('write-data'));
    var fields = wr.resultXML.selectNodes("/root/object/*[name() = 'subcaption' or name() = 'lead']");
    var field;
    while (field = fields.nextNode()) {
      var dome = Cache.CreateDOM();
      dome.loadXML('<root>'+field.text+'</root>');
      var node = ObjectModel.WriteField(userID, field.nodeName, dome, null, true);
      root.appendChild(node.selectSingleNode("/write-data/data"));
    }
    var metas = wr.resultXML.selectNodes("/root/object/*[name() = 'meta']");
    var meta;
    while (meta = metas.nextNode()) {
      var dome = Cache.CreateDOM();
      dome.loadXML('<root>'+meta.text+'</root>');
      var node = ObjectModel.WriteMeta(userID, meta.getAttribute('name'), dome, null, true);
      root.appendChild(node.selectSingleNode("/write-data/data"));
    }
    ObjectModel.WriteData(dom, increaseProgress);
  }
  
  function writeDesignMeta(wr) {
    var source;
    switch (typeof wr) {
        case 'string':
            source = wr;
            break;
        default:
            try {
                source = wr.resultXML.selectSingleNode("/root/object/meta[@name = 'source']").text;
            } catch(e) {
                increaseProgress(); return false;
            }
    }
    ObjectModel.WriteMeta(userID, 'design', source, increaseProgress);
  }

  function createWebsite() {
    var returnValue = window.showModalDialog('/ivy/iem-shared/system/modules/SmartEditor/wizards/wizardry.ivy', window, 'scroll:no;status:yes;font-family:Verdana;font-size:12;dialogWidth:800px;dialogHeight:616px');
    if (returnValue != null) {
      theme = returnValue.theme;
      design = returnValue.design;
      document.getElementById('light').style.display = 'none';
      document.getElementById('progress').style.display = 'block';
      var start = document.getElementById('buttons').children[0];
      start.disabled = true;
      start.className = 'disabled';
      startCreation(returnValue.theme);
      //ObjectModel.GetObject(returnValue.theme, 'true', startCreation, true, 'false', 'true');
      writeDesignMeta(returnValue.design.substring(0, returnValue.design.indexOf('/preview.jpg')));
      //ObjectModel.GetObject(returnValue.design, 'false', writeDesignMeta, true, 'false', 'false');
    }
  }
  
  function redirectIf(url) {
    if (checkBrowser() == "allOK") {
        document.body.redirect = url;
        
        document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n');
        document.write('on error resume next \n');
        document.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6")))\n');
        document.write('</SCR' + 'IPT\> \n');
        try {
            if (MM_FlashCanPlay) {
                var li = document.getElementById('loadingInner2');
                var gp = document.getElementById('gifprogress');
                gp.style.position = 'absolute';
                gp.style.left = 180;
                gp.width = '100';
                gp.style.visibility = 'hidden';
                li.innerHTML = '<object type="application/x-shockwave-flash" data="/ivy/iem-shared/system/modules/SmartEditor/images/loading.swf" width="204" height="12"><param name="movie" value="/ivy/iem-shared/system/modules/SmartEditor/images/loading.swf" /><param name="wmode" value="transparent" /></object>';
                li.style.display = 'block';
            }  
        } catch(e) {}
        document.getElementById('loading').style.display = 'block';
    } else {
        document.getElementById('warning').style.display = 'block';
    }
  }
  
  function checkBrowser() {
    var ver = navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE ")+5, navigator.appVersion.indexOf("MSIE ")+8);
    var winver = navigator.userAgent.substring(navigator.userAgent.indexOf("Windows NT")+11, navigator.userAgent.indexOf("Windows NT")+12);
    if ((parseFloat(ver) >= '5.5') && (parseInt(winver) >= 5)) {
        var mine = window.open('','','width=1,height=1,left=0,top=0,scrollbars=no');
        var popUpsBlocked;
        if (mine) {
            popUpsBlocked = false; 
            mine.close();
        } else {
            popUpsBlocked = true;
        }
        if (popUpsBlocked) {
            return "popupBlocked";
        } else {
            return "allOK";
        }
    } else {
        return "notIE";
    }
  }
