// Input Params:
//   imagesOnPage
//   order[]
 var images       = 17;   //Images total in SlideShow
 var imagesOnPage = 12;   //Images on Page (imagesOnPage < images)!!!
 var img          = new Array(images);//array to hold the images
 var fileIds;

 var delayTime    = 5000; //ms
 var delayOpacity = 15;

 var deltaOpacity = 0.02;
 var minOpacity   = 0.0;
 var maxOpacity   = 1.0;

 var IE='\v'=='v';
 if(IE)
 { deltaOpacity = 4;// In IE slow -> set Big step
   minOpacity   = 0;
   maxOpacity   = 100;
 }

 var done         = 1;    //disappear, appear done!
 var count        = 0;    // Index in order[]
 var order        = [0,4,2,3,1,5,11,7,9,6,8,10];// Change images in Chess order
 var start        = null; //start pointer

 var i1,i2;


 var t1,t2,obj,op1,op2;
 var cm;     // percents

 // Flip elements in this array
 var allImg     = new Array(images);
 for(i = 0; i<images; i++) allImg[i] = i;

 //pre-load all the images
 for(i = 0; i < images; i++)
 { img[i] = new Image();
   img[i].src = "slideshow/pic" + i + ".jpg";
 }


 //function for changing the images
 function anim()
 {
   if(done != 1) return; // Previous appear/disappear not stopped
   done = 0;

   //  imagesOnPage...(images-1)
   i2  = Math.floor( ( (images-imagesOnPage)*Math.random() ) + imagesOnPage);
   // 0...imagesOnPage
   i1  = order[count];//Math.floor(imagesOnPage*Math.random());
   count++;
   if(count >= imagesOnPage) count = 0;

   if(i1 < 0)             i1 = 0;
   if(imagesOnPage <= i1) i1 = imagesOnPage - 1;
   if(i2 < imagesOnPage)  i2 = imagesOnPage;
   if(images <= i2)       i2 = images - 1;

   // Show only the 6 first array alements
    /*document.images["img1"].src = img[allImg[0]].src;
    document.images["img2"].src = img[allImg[1]].src;
    document.images["img3"].src = img[allImg[2]].src;
    document.images["img4"].src = img[allImg[3]].src;
    document.images["img5"].src = img[allImg[4]].src;
    document.images["img6"].src = img[allImg[5]].src; */


    op2 = maxOpacity;
    t2  = setInterval("disappear("+(i1+1)+")",delayOpacity);
 }

 // Flip 2 elements
 function flip(i1_,i2_)
 { var buf     = allImg[i1_];
   allImg[i1_] = allImg[i2_];
   allImg[i2_] = buf;
 }

 function appear(i)
 {  setImgOpacity("img"+i,op1)
    if(op1 < maxOpacity) op1 += deltaOpacity;
    else  { clearInterval(t1); done = 1;}
 }
 function disappear(i)
 {  //alert();
    setImgOpacity("img"+i,op2)
    if(op2 > minOpacity)  op2 -= deltaOpacity;
    else
    { fl_appear = 1;
      clearInterval(t2);

      //alert();
      flip(i1,i2);   // Change Image !!!
      document.images["img"+i].src = img[allImg[i-1]].src;
      //document.getElementById('idSlAhref'+(i-1)).href = "download.php?file_id="+fileIds[allImg[i-1]];

      op1 = minOpacity;
      t1 = setInterval("appear("+i+")",delayOpacity);
    }
 }
 function setImgOpacity(imgName, op)
 { document.images[imgName].style.opacity = op;
   if(IE)
   { document.images[imgName].style.filter
     = "progid:DXImageTransform.Microsoft.Alpha(opacity = "+op+")";
   }
 }

 //function for starting the slide show
 function slide()
 { start = setInterval("anim()", delayTime); }

 function stopSlide()
 { clearInterval(start); }

 var count_load = 0;
 function img_loaded(js_slideFileIds)
 { fileIds = js_slideFileIds;
   count_load++;
   //alert(count_load);
   if(count_load == imagesOnPage)
   { //alert('All images loaded!');
     slide();
   }
 }



/******************************************************************/
/*********************** Form checking  ***************************/
/******************************************************************/

var cli_errors = [
  "",                                // 0
  "You must choose at least 1 file <a href=\"index.php\">Fill Profile</a>", // 1
  "Error in filepath"                // 2
];

var cli_warnings = [
  "",                                             // 0
  "&nbsp;please wait, it may take several minutes..", // 1
  "&nbsp;error in filepath",                            // 2
  "&nbsp;username,password shall contain alphanumerical characters only"// 3
];



/******* Upload Choose Files  ******/
function valid_upload_choose()
{ var id_div_err  = 'id_div_err';
  var id_div_warn = 'id_div_warn';

  //var name_form_choose = "form_choose";

  // All fields are empty - CHECKING
  {
    show_warn_div(id_div_warn,1);

  }


}

function valid_upload_save_descr()
{ document.getElementsByName("form_descr")[0].submit();// Opera, IE, Mozilla
}

function valid_login()
{ //alert('login');
  var name_form_login = "form_login";
  document.getElementsByName(name_form_login)[0].submit();
}

function valid_search()
{ //alert('search');
  //document.write('search');
  var name_form_search = "form_search";
  document.getElementsByName(name_form_search)[0].submit();
}

function valid_quickreg()
{ var name_form = "form_quickreg";
  document.getElementsByName(name_form)[0].submit();
}

/*function valid_download(file_id)
{ //var name_form = "form_thumb";
  //document.getElementsByName(name_form)[0].submit();
  document.getElementById(file_id).submit();

} */

/*function show_err_div(id_div,n)
{ document.getElementById(id_div).style.visibility = '';
  document.getElementById(id_div).innerHTML = "Error: " + cli_errors[n];
}*/

function show_warn_div(id_div,n)
{ //document.getElementById(id_div).style.visibility = '';
  //document.getElementById(id_div).innerHTML = "Warning: " + cli_warnings[n];

  document.getElementById(id_div).style.display = 'block';
  document.getElementById(id_div).innerHTML = "Warning: " + cli_warnings[n];

}


// Deleting div
/*function del_div(id_div)
{ //alert('del_err_div');
  document.getElementById(id_div).style.visibility = 'hidden';
  document.getElementById(id_div).innerHTML = '';

  //alert();
}*/


// Image vertical align
/*function upl_save_img_align(img_id,orient)
{ var img = document.getElementById(img_id);

  if(orient == 1)// vert
   img.style.height = "160px";
  else           // horiz
   img.style.marginTop = ((160 - img.height)/2) + "px";

}*/

function show_div(id)
{ document.getElementById(id).style.display = "block";
}
function hide_div(id)
{ document.getElementById(id).style.display = "none";
}


function color_search()
{ var color_checkbox = document.getElementById('id_color_checkbox');
  if(color_checkbox.checked) show_div('id_color_div');
  else                       hide_div('id_color_div');
}



// COLOR SEARCH

var line1 = [0xFA000A,0xFA0014,0xFA001E,0xFA0028,0xFA0032,0xFA003C,0xFA0046,0xFA0050,0xFA005A,0xFA0064,0xFA006E,0xFA0078,0xFA0082,0xFA008C,0xFA0096,0xFA00A0,0xFA00AA,0xFA00B4,0xFA00BE,0xFA00C8,0xFA00D2,0xFA00DC,0xFA00E6,0xFA00F0,0xFA00FA,0xF000FA,0xE600FA,0xDC00FA,0xD200FA,0xC800FA,0xBE00FA,0xB400FA,0xAA00FA,0xA000FA,0x9600FA,0x8C00FA,0x8200FA,0x7800FA,0x6E00FA,0x6400FA,0x5A00FA,0x5000FA,0x4600FA,0x3C00FA,0x3200FA,0x2800FA,0x1E00FA,0x1400FA,0x0A00FA,0x0000FA,0x000AFA,0x0014FA,0x001EFA,0x0028FA,0x0032FA,0x003CFA,0x0046FA,0x0050FA,0x005AFA,0x0064FA,0x006EFA,0x0078FA,0x0082FA,0x008CFA,0x0096FA,0x00A0FA,0x00AAFA,0x00B4FA,0x00BEFA,0x00C8FA,0x00D2FA,0x00DCFA,0x00E6FA,0x00F0FA,0x00FAFA,0x00FAF0,0x00FAE6,0x00FADC,0x00FAD2,0x00FAC8,0x00FABE,0x00FAB4,0x00FAAA,0x00FAA0,0x00FA96,0x00FA8C,0x00FA82,0x00FA78,0x00FA6E,0x00FA64,0x00FA5A,0x00FA50,0x00FA46,0x00FA3C,0x00FA32,0x00FA28,0x00FA1E,0x00FA14,0x00FA0A,0x00FA00,0x0AFA00,0x14FA00,0x1EFA00,0x28FA00,0x32FA00,0x3CFA00,0x46FA00,0x50FA00,0x5AFA00,0x64FA00,0x6EFA00,0x78FA00,0x82FA00,0x8CFA00,0x96FA00,0xA0FA00,0xAAFA00,0xB4FA00,0xBEFA00,0xC8FA00,0xD2FA00,0xDCFA00,0xE6FA00,0xF0FA00,0xFAFA00,0xFAF000,0xFAE600,0xFADC00,0xFAD200,0xFAC800,0xFABE00,0xFAB400,0xFAAA00,0xFAA000,0xFA9600,0xFA8C00,0xFA8200,0xFA7800,0xFA6E00,0xFA6400,0xFA5A00,0xFA5000,0xFA4600,0xFA3C00];
var ton   = [-210,-201,-192,-183,-174,-165,-156,-147,-138,-129,-120,-111,-102,-93,-84,-75,-66,-57,-48,-39,-30,-21,-12,-3,6,15,24,33,42,51,60,69,78,87,96,105,114,123,132,141,150,159,168,177,186,195];

function Color(x1,y1)
{
 if((x1<0)||(line1.length<x1)||(y1<0)||(ton.length<y1))
   alert('error');

 //alert(line1.length+" "+ton.length+" x_m="+x1+" y_m="+y1);

 var R = (line1[x1] & 0xFF0000) >> 16;
 var G = (line1[x1] & 0x00FF00) >> 8;
 var B = (line1[x1] & 0x0000FF);

 R += ton[y1]; if(R < 0) R = 0; if(R > 0xFF) R = 0xFF;
 G += ton[y1]; if(G < 0) G = 0; if(G > 0xFF) G = 0xFF;
 B += ton[y1]; if(B < 0) B = 0; if(B > 0xFF) B = 0xFF;

 var R_str = R.toString(16); if(R_str.length == 1) R_str = '0'+R_str;
 var G_str = G.toString(16); if(G_str.length == 1) G_str = '0'+G_str;
 var B_str = B.toString(16); if(B_str.length == 1) B_str = '0'+B_str;

 var rgb_str = R_str + G_str + B_str;

 return rgb_str;
}

function ch1(event)
{ 
  var div_color = document.getElementById('div_color');
  var txt1 = document.getElementById('text_color');
  var img1 = document.getElementById('img_color');


  if(!event) event = window.event;
  var x_m, y_m, x_scr, y_scr, offsetLeft=0, offsetTop=0;

  var obj_img = img1;
  while(obj_img) {
    offsetLeft += obj_img.offsetLeft;
    offsetTop += obj_img.offsetTop;
    obj_img = obj_img.offsetParent;
  }

  //alert("offset "+offsetLeft+" "+offsetTop);


  if (document.attachEvent != null) { // IE & Opera
    x_scr = (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
    y_scr = (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);

    x_m = window.event.clientX + x_scr - offsetLeft; //!!!
    y_m = window.event.clientY + y_scr - offsetTop;  //!!!

  }else                               // Gecko
  if(!document.attachEvent && document.addEventListener) {
    x_scr = window.scrollX;
    y_scr = window.scrollY;

    x_m = event.clientX + x_scr - offsetLeft; //!!!;
    y_m = event.clientY + y_scr - offsetTop;  //!!!;
  }

  //alert('after offset '+x_m+' '+y_m); //img1.offsetTop);


  var rgb_str = Color(x_m,y_m);
  div_color.style.backgroundColor = '#' + rgb_str;
  txt1.value = rgb_str;

}



//alert('slideshow script loaded'); // Script is loaded right!!!
