var total_files = 50;
var tid;
var pop_win;
var browse_mode;

//--------------------------------------
function init_upload(){
  if(browse_mode == 'gallery'){
    init_upload_gallery();
    $('browse_mode').value = "gallery";

  }else  if(browse_mode == 'simple'){
    init_upload_simple();
    $('browse_mode').value = "simple";
  }else{
    $('browse_mode').value = "advance";
  }
}


//--------------------------------------
function init_upload_simple(){
  var i=1;
  tid = randomString()+randomString();
  while(i<=total_files){
    var file = OAT.Dom.create('input',{display:'none'});
    //var file = document.createElement( 'input' );
    file.name = "SourceFile_"+i;
    file.type='file';
    file.id="file_"+i;
    OAT.Dom.attach(file,'change',upload.update)
    $('files').appendChild(file);
    if(i == 1){
       OAT.Dom.show(file);
    }
    i++;
  }
  $('total_files').innerHTML = total_files;
  //$('tid').value = tid
}

//--------------------------------------
function init_upload_gallery(){
  var i=0;

  var file = OAT.Dom.create('input');
  file.name = "gallery_name";
  file.type='hidden';
  file.value=gallery_name;
  $('files').appendChild(file);

  while(i<gallery_images.length){
    var image = {};
    image.id = (Number(i)+1);
    image.value = '/image.php?g='+gallery_name+'&i='+gallery_images[i]+'&t=1';
    image.path = ''+ image.value;
    image.filename = gallery_images[i];

    upload.update_inside(image,0);

    var file = OAT.Dom.create('input');
    file.name = "SourceFile_"+(Number(i)+1)+'[name]';
    file.type='hidden';
    file.value=gallery_images[i];
    $('files').appendChild(file);

    i++;
  }
  $('total_files').innerHTML = gallery_images.length;
}

var upload = {};
upload.previews = Array();



//--------------------------------------
upload.update = function(e){
  var el = (e.target) ? e.target : e.srcElement
  var image = {};
  image.id = el.id.substring(el.id.lastIndexOf('_')+1);
  image.value = el.value
  image.filename = el.value.substring(el.value.lastIndexOf('\\')+1);
  image.path = 'file:///'+ el.value;
	image.path = image.path.replace(/\\/g, '/'); // Fix Windows paths

  if(!upload.check_double(image.value)){
    alert('Този файл вече е добавен в списъка');
    return 0;
  }
  upload.update_inside(image,1);

  var next_id = Number(image.id) + 1;

  if(upload.previews.length == total_files){
    $('file_'+ total_files).disabled = true;
  }else{
    OAT.Dom.hide(el);
    OAT.Dom.show('file_'+next_id);
  }
}

//--------------------------------------
upload.update_inside = function(el,add2gallery){

  var id = el.id;

  var filename = el.filename;

  var preview = OAT.Dom.create('div');
  var preview_table = OAT.Dom.create('table');
  var img_boder = OAT.Dom.create('div');
  var img = OAT.Dom.create('img');
  var info = OAT.Dom.create('span',{color:"#000",paddingLeft:'5px'});
  var info2 = OAT.Dom.create('span',{color:"#f00",paddingLeft:'25px'});
  img_boder.appendChild(img);
  preview.appendChild(preview_table);
  $('upload_preview').appendChild(preview);
  var tr;
  tr = preview_table.insertRow(0);
  td = tr.insertCell(0);
  td.vAlign="top";
  td = tr.insertCell(1);
  td.vAlign="top";
  td.id="preview_tools_"+id;
  preview.tools = td;
  tr = preview_table.insertRow(1);
  tr.insertCell(0);
  td = tr.insertCell(1);
  preview.gallery = td;
  preview.info = info;
  preview.info2 = info2;
  preview.info.innerHTML = " Формат";
  preview.info2.innerHTML = "Брой";

  preview.tools.appendChild(preview.info);
  preview.info.appendChild(preview.info2);
  var first_select = add_tools(preview,id,1);
  
  preview.img = {}; //new Image();
  preview.img.src = el.path;
  preview.plus  = OAT.Dom.create('div');
  preview.plus.button = OAT.Dom.create('button');
  if(!OAT.Dom.isIE()){
    preview.plus.button.type = "button";
  }
  
  preview.plus.button.innerHTML = "друг формат";
  preview.plus.button.style.width = '110px';
  preview.plus.button.onclick = function(){
    var index = preview.tools.childNodes.length-1;
    var tools = OAT.Dom.create('div');
    var div = add_tools(preview,id,index);
    preview.tools.insertBefore(div,preview.plus);
    //div.select.selectedIndex = $('default_format').selectedIndex;
    if(index > 2){
      OAT.Dom.hide(preview.plus);
    }
    order.update();
  }
  preview.plus.appendChild(preview.plus.button);
  if(add2gallery){
    preview.gallery.checkbox = OAT.Dom.create('input');
    preview.gallery.checkbox.type = 'checkbox';
    preview.gallery.checkbox.value = '1';
    preview.gallery.checkbox.name = "SourceFile_"+id+"[gallery]";
    preview.gallery.appendChild(preview.gallery.checkbox);
    preview.gallery.appendChild(OAT.Dom.text('Добави в галерията'));
  }
  preview_table.setAttribute('cellspacing',"0");
  preview_table.setAttribute('cellpadding',"0");
  preview_table.rows[0].cells[0].appendChild(img_boder);
  preview_table.rows[0].cells[1].appendChild(preview.plus);
  preview_table.rows[1].cells[0].appendChild(OAT.Dom.text(filename));

  //preview.tools.firstChild.select.selectedIndex = $('default_format').selectedIndex;
  first_select.select.selectedIndex= $('default_format').selectedIndex;

  img.src = el.path;
  img.style.display = 'block'
  img.style.width  = '70px';

  img_boder.style.overflow = 'hidden'
  img_boder.style.width  = '70px';
  img_boder.style.height = '70px';

  preview.style.width  = '200px';
  //preview.style.textAlign  = 'center2';
  preview.info.style.textAlign  = 'left';
  //preview.style.fontSize = '0.6em';
  preview.style.fontSize = '9px';
  preview.style.border = '1px solid';
  preview.style.float = 'left';
  preview.className = 'preview'
  preview.id = 'preview_f_' + id;
  preview.file = $('file_'+id);
  $('total_count').innerHTML = Number($('total_count').innerHTML)+1;
  upload.previews[upload.previews.length] = preview;
  order.update();
  return 1;
}

//--------------------------------------
upload.check_double = function(src){
	path = src.toLowerCase();
	path = 'file:///'+ path;
	path = path.replace(/\\/g, '/'); // Fix Windows paths

  for(i in upload.previews){
    if(typeof upload.previews[i] == 'object'){
      if(upload.previews[i].img.src.toLowerCase() == path){
        return 0;
      }
    }
  }
  return 1;
}

//--------------------------------------
var order = {};
order.list = [0,0,0,0,0];

//--------------------------------------
order.update = function(){
  order.list = [0,0,0,0,0];
  for(i in upload.previews){
    if(typeof upload.previews[i] == 'object'){
      for(x=1;x<upload.previews[i].tools.childNodes.length-1;x++){
        count = upload.previews[i].tools.childNodes[x].childNodes[1].value;
        format = upload.previews[i].tools.childNodes[x].childNodes[0].value;
        order.list[format] = Number(order.list[format]) + Number(count);
      }
    }
  }
}

//--------------------------------------
order.get_price_list = function(){
  var input = function(){
    var post = 'action=get_order_prices&promo_code='+$('order_promo_code').value+ '&browser_mode=' + browse_mode+ '&delivery_method=' + ($('delivery_method_1').checked?1:2);
    if(browse_mode == 'article'){
      post += '&format['+$v('article_id')+']='+$v('article_count');
    }else{
      post += '&order_sid='+$('tid').value
      for(var i=0;i<order.list.length;i++){
        post += '&format[]='+order.list[i];
      }
    }
    return post;
  }
  var return_func = function(data){
    $('order_list').innerHTML = '';
    $('order_list').innerHTML = data;
  }
  OAT.Ajax.command(OAT.Ajax.POST, 'actions.php', input, return_func,OAT.Ajax.TYPE_TEXT);
}


//--------------------------------------
function add_tools(preview,id,index){
  default_count = $('default_count').value;
  default_format = $('default_format').selectedIndex;
  var div = OAT.Dom.create('div'); ;
  preview.tools.appendChild(div);
  div.input  = OAT.Dom.create('input',{width:'20px'});
  div.input.name="SourceFile_"+id+"[count][]";
  div.input.type="text";
  div.input.value=default_count;
  div.select = OAT.Dom.create('select')
  div.select.name="SourceFile_"+id+"[format][]";
  OAT.Dom.option('9x13' ,'0' ,div.select);
  OAT.Dom.option('10x15','1',div.select);
  OAT.Dom.option('13x18','2',div.select);
  OAT.Dom.option('20x30','3',div.select);
  OAT.Dom.option('30x45','4',div.select);
  div.removeb = OAT.Dom.create('button');

  //div.removeb.type="button"

  var del = function (){
    OAT.Dom.show(preview.plus);
    OAT.Dom.unlink(div);
    order.update();
    var index = preview.tools.childNodes.length-1;

    if(index == 1){
      preview.file.value = '';
      OAT.Dom.unlink(preview);
      upload.previews = array_remove(upload.previews,id);
      $('total_count').innerHTML = Number($('total_count').innerHTML)-1;
    }
  }
  OAT.Dom.attach(div.removeb,'click',del);
  OAT.Dom.attach(div.input,'change',order.update);
  OAT.Dom.attach(div.select,'change',order.update);


  div.removeb.innerHTML = 'X';
  //div.id='f_'+id+'_'+index;
  div.appendChild(div.select);
  div.appendChild(div.input);
  div.appendChild(div.removeb);
  return div;
}

//<!--=======================================================================-->
function randomString() {
	var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	var string_length = 8;
	var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return randomstring;
}

//--------------------------------------
var current_step = 1;
//--------------------------------------
function next_step(){
  if(current_step == 1){
    //if($('total_count').innerHTML == 0){
    //  alert('Не сте поръчали нито една картинка.\n Моля, изберете бутона "Browse" и посочетете желаните картинки');
    //  return;
    //}

    if(browse_mode == 'advance'){
      prepare_order();
    }

    if(!OAT.Dom.isIE() && browse_mode == 'advance'){

      var pos = OAT.Dom.position('applet');
      pos[0] += window.screenX;
      pos[1] = 150;
      if(typeof pop_win != 'undefined' && pop_win.closed != true){
        return;
      }
      pop_win = window.open('','pop',"resizable=1,width=600,height=600,top="+pos[1]+",left="+pos[0]+",scrollbars=yes,location=0,status=0,modalZ=yes");
      pop_win.document.write('<html>');
      pop_win.document.write('<head>');
      pop_win.document.write('<script type="text/javascript" src="/js/main.js"></script><script type="text/javascript" src="/js/upload.js"></script>');
      pop_win.document.write('<link type="text/css" rel="stylesheet" href="css/page-css.css" />');
      pop_win.document.write('<script type="text/javascript">var toolkitPath = "/lib/toolkit/";var featureList=["dom","ajax"];</script><script type="text/javascript" src="/lib/toolkit/loader.js"></script>');
      pop_win.document.write('</head><body onLoad="popup_init()"><form name="form_popup"><div class="body-content" style="padding-left:10px">');
      pop_win.document.write($('panels').innerHTML);
      pop_win.document.write('<div class="buttons">');
      pop_win.document.write($('buttons').innerHTML);
      pop_win.document.write('</div></div></form></body></html>');
      pop_win.document.close();
      pop_win.focus();

    }else{

      OAT.Dom.hide('panel_1');
      OAT.Dom.show('panel_2');
      OAT.Dom.show('button_prev_step');
      current_step = 2;
      if(!$('delivery_method_2').checked){
        $('delivery_method_1').checked=1;
      };
    }

  }else if(current_step == 2){

    if(!check_make_order()){
      return;
    }
    order.get_price_list();
    OAT.Dom.hide('panel_2');
    OAT.Dom.show('panel_3');
    current_step = 3;
    $('button_next_step').innerHTML = 'Изпрати поръчката';
    $('button_next_step').disabled = false;

  }else{
    $('button_next_step').disabled = true;
    if(browse_mode == 'gallery'){
      document.f1.submit();

    }else if(browse_mode == 'simple' || browse_mode == 'article'){
      document.f1.submit();
      open_uploadbar();

    }else if(window.name == 'pop'){
      opener.document.getElementById('order_user_name').value = $('order_user_name').value
      opener.document.getElementById('order_user_email').value = $('order_user_email').value
      opener.document.getElementById('order_user_tel').value = $('order_user_tel').value
      opener.document.getElementById('order_promo_code').value = $('order_promo_code').value
      opener.document.getElementById('order_notes').value = $('order_notes').value
      opener.document.getElementById('delivery_city').selectedIndex = $('delivery_city').selectedIndex;
      opener.delivery_select('delivery_city');
      opener.document.getElementById('delivery_store').selectedIndex = $('delivery_store').selectedIndex;

      opener.getImageUploader("ImageUploader1").Send();
      window.close();
    }else{
      getImageUploader("ImageUploader1").Send();
    }
  }
}

//--------------------------------------
function prev_step(){
  if(current_step == 3){
    OAT.Dom.hide('panel_3');
    OAT.Dom.show('panel_2');
    $('button_next_step').innerHTML = 'напред >>';
    current_step = 2;
  }else if(current_step == 2){
    OAT.Dom.hide('panel_2');
    OAT.Dom.show('panel_1');
    current_step = 1;
    OAT.Dom.hide('button_prev_step');
  }
}

//--------------------------------------
function popup_init(){
  browse_mode = 'advance';
  current_step = 2;
  order.list = opener.order.list;
  OAT.Dom.show('panel_2');
  opener.window.onfocus = function(){window.close()};
  if(!$('delivery_method_2').checked){
    $('delivery_method_1').checked=1;
  };

}

//--------------------------------------
function open_uploadbar(){
  theURL = 'upload2status2.php?UPLOAD_IDENTIFIER='+ $('tid').value +'&i='+send_info();
  window.open(theURL,'Статус','scrollbars=yes,width=540,height=400,resizable=1,status=no');
}

//--------------------------------------
function delivery_select() {
  obj_name = 'delivery_city';
  var obj = $(obj_name);
  var i;
  $('delivery_store').options.length = 0;
  var city_id = obj.value;

  if(city_id == ''){
    return;
  }
  OAT.Dom.show('delivery_store');
  if(cities[city_id].length > 1){
    $('delivery_store').options[0] = new Option('Изберете магазин','', false, false);
  }
  for (i = 0; i < cities[city_id].length; i++) {
    $('delivery_store').options[$('delivery_store').options.length] = new Option(cities[city_id][i][1],cities[city_id][i][0], false, false);
  }
}


//--------------------------------------
function delivery_select_store2city(store_id) {
  var i;
  var x;
  var city_index = 1;
  var store_index = 0;
  for (x in cities) {
    store_index=0;
    if(typeof cities[x] == 'object'){
      for (i = 0; i < cities[x].length; i++) {
        var t = cities[x][i][0];
        if(cities[x][i][0] == store_id){
          $('delivery_city').value = x;
          //$('delivery_city').selectedIndex = city_index;
          delivery_select('delivery_city');
          $('delivery_store').value = store_id
          //$('delivery_store').selectedIndex = store_index;
          return;
        }
        store_index++;
      }
      city_index++;
    }
  }
}

//--------------------------------------
function check_profile_save(){
  d = document.f1;
  if(d.user_pass.value != d.user_pass2.value){
    alert('Двете пароли се различават');
    return false;
  }
  if(d.user_tel.value == ''){
    alert('Не сте посочили телефон');
    return false;
  }
  if(d.user_email.value == ''){
    alert('Не сте посочили email');
    return false;
  }
  return true;
}


//--------------------------------------
function check_register_save(){
  d = document.f1;
  if(d.user_name.value == ''){
    alert('Не сте посочили вашите имена');
    d.user_name.focus();
    return false;
  }
  if(d.user_email.value == ''){
    d.user_email.focus();
    alert('Не сте посочили email');
    return false;
  }
  if(d.user_pass.value == ''){
    d.user_pass.focus();
    alert('Не сте посочили парола');
    return false;
  }
  if(d.user_pass.value != d.user_pass2.value){
    d.user_pass.focus();
    alert('Двете пароли се различават');
    return false;
  }
  if(d.user_tel.value == ''){
    d.user_tel.focus();
    alert('Не сте посочили телефон');
    return false;
  }
  if(!d.terms.checked){
    d.terms.focus();
    alert('Не можете да се регистрирате в сайта на fotobravo.com ако не приемате условията за ползване');
    return false;
  }

  return true;
}

//--------------------------------------
function check_make_order(){

  if($('order_user_name').value == ''){
    alert('Не сте посочили вашите имена');
    $('order_user_name').focus();
    return false;
  }
  if($('order_user_tel').value == ''){
    $('order_user_tel').focus();
    alert('Не сте посочили телефон');
    return false;
  }
  if($('order_user_email').value == ''){
    $('order_user_email').focus();
    alert('Не сте посочили email');
    return false;
  }
  if($('delivery_method_1').checked){
    if($('delivery_store').value == ''){
      $('delivery_store').focus();
      alert('Не сте посочили магазин');
      return false;
    }
  }else{
    if($('order_user_home').value == ''){
      $('order_user_home').focus();
      alert('Не сте посочили избран адрес');
      return false;
    }
  }

  return true;
}

//--------------------------------------
function login_hidden(){
  var login_data = function(){
    return 'action=login&user_email='+$('login_user_email').value+'&user_pass='+$('login_user_pass').value;
  }
  var login_return = function(data){

    if(OAT.Dom.isIE()){
      data = data.childNodes[1].childNodes;
    }else{
      data = data.childNodes[0].childNodes;
    }
    if(getText(data[0]) == 'bad_user'){
      alert('Няма такъв регистриран потребител')
      return;
    }

    $('order_user_name').value = getText(data[0]);
    $('order_user_tel').value = getText(data[1]);
    $('order_user_email').value = getText(data[2]);
    delivery_select_store2city(getText(data[3]));
    $('order_user_home').value = getText(data[4]);
    OAT.Dom.hide("login_box");
	}
	OAT.Ajax.command(OAT.Ajax.POST, 'actions.php', login_data, login_return)
}


//<!--=======================================================================-->
function send_info(){
  table = '';

  for(i in upload.previews){
    if(typeof upload.previews[i] == 'object'){
      file_info = checkFileInfo(upload.previews[i].img)
      table = AddFile(table,file_info)
    }
  }
  return table;
}


//<!--=======================================================================-->
function AddFile(table,file_info){
      if(!file_info['name']){
        return table;
      }
      table += file_info['name'] + ","
      table += file_info['width'] + ","
      table += file_info['height'] + "," ;
      table += file_info['size'] + ":" ;
      return table
}

//<!--=======================================================================-->
function checkFileInfo (new_file) {
  info = new Array();

  if(!new_file){
    return info;
  }

  info['path'] = new_file.src;

  if(info['path'].lastIndexOf('/') != -1){
    info['name'] = info['path'].substring(info['path'].lastIndexOf('/')+1,100);
  }else if(info['path'].lastIndexOf('\\') != -1){
    info['name'] = info['path'].substring(info['path'].lastIndexOf('\\')+1,100);
  }else{
    info['name'] = info['path'];
  }

  if (new_file.fileSize) {
    info['size'] = new_file.fileSize;
  }else{
    info['size'] = -1;
  }

  if (new_file.height) {
    info['height'] = new_file.height;
  }else{
    info['height'] = -1;
  }

  if (new_file.width) {
    info['width'] = new_file.width;
  }else{
    info['width'] = -1;
  }

  return info;

}


//--------------------------------------
function getText(obj){
  return (OAT.Dom.isIE()?obj.text:obj.textContent);
}

//--------------------------------------
function getId(obj){
  return obj.substring(obj.lastIndexOf('_')+1);
}


//--------------------------------------
function array_remove(arr,index){
 index--;
  var m_count = arr.length;

	if ( m_count > 0 && index > -1 && index < arr.length ){

    switch( index ){
  		case 0:

  			arr.shift();
  			break;
  		case m_count - 1:

  			arr.pop();
  			break;
  		default:

  			var head   = arr.slice( 0, index );
  			var tail   = arr.slice( index + 1 );
  			arr = head.concat( tail );
  			break;
  	}
  }
  return arr;
}


//--------------------------------------
//--------------------------------------
function dd(txt){
  if(OAT.Dom.isGecko()){
    console.debug(txt);
  }
}
//<!--=======================================================================-->
function debuga(obj){

  s='';
  for(ob in obj){
    s += ob+'='+obj[ob]+'<br>\n';
  }

  alert(s);
}
